class Terrific::Error
Attributes
exception[RW]
inner_message[R]
inner_type[R]
Public Class Methods
new(exception, options = {})
click to toggle source
# File lib/terrific/error.rb, line 5 def initialize(exception, options = {}) @exception = exception @inner_type = options.fetch(:type, default_type) @inner_message = options.fetch(:message, default_message) end
Public Instance Methods
as_json(options = {})
click to toggle source
# File lib/terrific/error.rb, line 19 def as_json(options = {}) { type: type, message: message } end
message()
click to toggle source
# File lib/terrific/error.rb, line 15 def message @message ||= apply(inner_message) end
type()
click to toggle source
# File lib/terrific/error.rb, line 11 def type @type ||= apply(inner_type) end
Private Instance Methods
apply(inner)
click to toggle source
# File lib/terrific/error.rb, line 26 def apply(inner) if inner.respond_to?(:call) inner.call(exception) else inner end end
default_message()
click to toggle source
# File lib/terrific/error.rb, line 38 def default_message I18n.t(type, scope: [:terrific, :messages], default: exception.message) end
default_type()
click to toggle source
# File lib/terrific/error.rb, line 34 def default_type exception.class.name.split("::").last.underscore end