Exception: Steroids::Errors::Base

Inherits:
StandardError
  • Object
show all
Includes:
ActiveModel::Serialization, Context, Quotes
Defined in:
lib/steroids/errors/base.rb

Constant Summary collapse

OTPIONS =
i[status message errors code cause context log]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message_string = nil, **options) ⇒ Base

Returns a new instance of Base.



16
17
18
19
20
21
22
23
24
# File 'lib/steroids/errors/base.rb', line 16

def initialize(message_string = nil, **options)
  @caller = caller
  extended_options = options.select{|key|OTPIONS.include?(key)}
  splat_options = options.select{|key|!OTPIONS.include?(key)}
  define_instance_variables_for(message_string, **extended_options)
  super(**splat_options, message: message, cause: @cause)
  set_backtrace(@cause&.backtrace || backtrace_locations || caller)
  extended_options.fetch(:log, false) ? self.log! : self.quiet_log
end

Instance Attribute Details

#causeObject (readonly)

Returns the value of attribute cause.



13
14
15
# File 'lib/steroids/errors/base.rb', line 13

def cause
  @cause
end

#codeObject (readonly)

Returns the value of attribute code.



13
14
15
# File 'lib/steroids/errors/base.rb', line 13

def code
  @code
end

#contextObject (readonly)

Returns the value of attribute context.



13
14
15
# File 'lib/steroids/errors/base.rb', line 13

def context
  @context
end

#errorsObject (readonly)

Returns the value of attribute errors.



13
14
15
# File 'lib/steroids/errors/base.rb', line 13

def errors
  @errors
end

#idObject (readonly)

Returns the value of attribute id.



13
14
15
# File 'lib/steroids/errors/base.rb', line 13

def id
  @id
end

#loggedObject (readonly)

Returns the value of attribute logged.



13
14
15
# File 'lib/steroids/errors/base.rb', line 13

def logged
  @logged
end

#messageObject (readonly)

Returns the value of attribute message.



13
14
15
# File 'lib/steroids/errors/base.rb', line 13

def message
  @message
end

#recordObject (readonly)

Returns the value of attribute record.



13
14
15
# File 'lib/steroids/errors/base.rb', line 13

def record
  @record
end

#statusObject (readonly)

Returns the value of attribute status.



13
14
15
# File 'lib/steroids/errors/base.rb', line 13

def status
  @status
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



13
14
15
# File 'lib/steroids/errors/base.rb', line 13

def timestamp
  @timestamp
end

Instance Method Details

#cause_messageObject



35
36
37
38
39
# File 'lib/steroids/errors/base.rb', line 35

def cause_message
  if cause
    reflect_on(cause, :original_message) || reflect_on(cause, :message)
  end
end

#log!Object



30
31
32
33
# File 'lib/steroids/errors/base.rb', line 30

def log!
  Steroids::Logger.print(self)
  @logged = true
end

#to_jsonObject



26
27
28
# File 'lib/steroids/errors/base.rb', line 26

def to_json
  Steroids::ErrorSerializer.new(self).to_json
end