File: errors.rb

package info (click to toggle)
ruby-rr 3.1.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,424 kB
  • sloc: ruby: 11,405; makefile: 7
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