Sha256: 842641abc804c8ef3837edb88a28dc6cd529b0d85872dfce93eaf00fed96d56d

Contents?: true

Size: 1.34 KB

Versions: 31

Compression:

Stored size: 1.34 KB

Contents

# frozen_string_literal: true
module ActiveMocker
  class ErrorObject
    attr_reader :message, :level, :original_error, :type, :class_name

    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

    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 new(args)
      elsif exception && class_name
        return new(message:        exception.message,
                   class_name:     class_name,
                   original_error: exception,
                   type:           type ? type : :standard_error)
      end
      raise ArgumentError
    end

    def original_error?
      !original_error.nil?
    end

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

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
active_mocker-2.6.2 lib/active_mocker/error_object.rb
active_mocker-2.6.1.beta2 lib/active_mocker/error_object.rb
active_mocker-2.6.1.beta lib/active_mocker/error_object.rb
active_mocker-2.6.0 lib/active_mocker/error_object.rb
active_mocker-2.5.4 lib/active_mocker/error_object.rb
active_mocker-2.5.3 lib/active_mocker/error_object.rb
active_mocker-2.5.2 lib/active_mocker/error_object.rb
active_mocker-2.5.1 lib/active_mocker/error_object.rb
active_mocker-2.5.1.pre lib/active_mocker/error_object.rb
active_mocker-2.5.0 lib/active_mocker/error_object.rb
active_mocker-2.4.4 lib/active_mocker/error_object.rb
active_mocker-2.4.3 lib/active_mocker/error_object.rb
active_mocker-2.4.2 lib/active_mocker/error_object.rb
active_mocker-2.4.1 lib/active_mocker/error_object.rb
active_mocker-2.4.0 lib/active_mocker/error_object.rb
active_mocker-2.4.0.pre5 lib/active_mocker/error_object.rb
active_mocker-2.3.4 lib/active_mocker/error_object.rb
active_mocker-2.4.0.pre4 lib/active_mocker/error_object.rb
active_mocker-2.4.0.pre3 lib/active_mocker/error_object.rb
active_mocker-2.4.0.pre2 lib/active_mocker/error_object.rb