Class: ActiveMocker::ErrorObject

Inherits:
Object
  • Object
show all
Defined in:
lib/active_mocker/error_object.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(level: :warn, message:, class_name:, type:, original_error: nil) ⇒ ErrorObject



6
7
8
9
10
11
12
# File 'lib/active_mocker/error_object.rb', line 6

def initialize(level: :warn, message:, class_name:, type:, original_error: nil)
  @level          = level
  @message        = message
  @class_name     = class_name
  @type           = type
  @original_error = original_error
end

Instance Attribute Details

#class_nameObject (readonly)

Returns the value of attribute class_name.



4
5
6
# File 'lib/active_mocker/error_object.rb', line 4

def class_name
  @class_name
end

#levelObject (readonly)

Returns the value of attribute level.



4
5
6
# File 'lib/active_mocker/error_object.rb', line 4

def level
  @level
end

#messageObject (readonly)

Returns the value of attribute message.



4
5
6
# File 'lib/active_mocker/error_object.rb', line 4

def message
  @message
end

#original_errorObject (readonly)

Returns the value of attribute original_error.



4
5
6
# File 'lib/active_mocker/error_object.rb', line 4

def original_error
  @original_error
end

#typeObject (readonly)

Returns the value of attribute type.



4
5
6
# File 'lib/active_mocker/error_object.rb', line 4

def type
  @type
end

Class Method Details

.build_from(object: nil, exception: nil, class_name: nil, type: nil) ⇒ Object

Raises:

  • (ArgumentError)


14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/active_mocker/error_object.rb', line 14

def self.build_from(object: nil, exception: nil, class_name: nil, type: nil)
  if object
    args              = [:message, :original_error, :level, :type, :class_name].each_with_object({}) do |meth, hash|
      hash[meth] = object.public_send(meth) if object.respond_to? meth
    end
    args[:type]       = type unless type.nil?
    args[:class_name] = class_name unless class_name.nil?
    return self.new(args)
  elsif exception && class_name
    return self.new(message:        exception.message,
                    class_name:     class_name,
                    original_error: exception,
                    type:           type ? type : :standard_error)
  end
  raise ArgumentError
end

Instance Method Details

#level_colorObject



35
36
37
38
39
40
41
42
43
44
# File 'lib/active_mocker/error_object.rb', line 35

def level_color
  case level
    when :standard_error, :fatal, :error
      :red
    when :warn
      :yellow
    when :info
      :default
  end
end

#original_error?Boolean



31
32
33
# File 'lib/active_mocker/error_object.rb', line 31

def original_error?
  !original_error.nil?
end