File: errors.rb

package info (click to toggle)
ruby-rr 1.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 1,436 kB
  • ctags: 1,404
  • sloc: ruby: 11,657; makefile: 5
file content (21 lines) | stat: -rw-r--r-- 561 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
module RR
  class << self
    attr_accessor :overridden_error_class
  end

  module Errors
    def self.build_error(given_error, message = nil, backtrace = nil)
      error_class = self.error_class(given_error)
      error = message ? error_class.new(message) : error_class.new
      error.backtrace = backtrace if error_class < RR::Errors::RRError
      error
    end

    def self.error_class(given_error)
      RR.overridden_error_class ||
      (given_error.is_a?(Symbol) ?
        RR::Errors.const_get(given_error) :
        given_error)
    end
  end
end