class Errawr::Error
Attributes
context[R]
key[R]
metadata[R]
Public Class Methods
new(key = :unknown, context = {})
click to toggle source
# File lib/errawr/error.rb, line 5 def initialize(key = :unknown, context = {}) @key = key @context = context.dup @metadata = {} @i18n = I18n.t('errawr.' + @key.to_s) update_context(@context) end
Public Instance Methods
message()
click to toggle source
# File lib/errawr/error.rb, line 13 def message process_message end
update_context(context)
click to toggle source
# File lib/errawr/error.rb, line 17 def update_context(context) process_context(context) end
Private Instance Methods
process_context(context)
click to toggle source
# File lib/errawr/error.rb, line 23 def process_context(context) @message_overridden = context.include?(:message) if @i18n.is_a?(Hash) @context.merge!(@i18n.merge(context)) else @context.merge!(context) end @metadata.merge!(@context.delete(:metadata)) if @context.key?(:metadata) end
process_message()
click to toggle source
# File lib/errawr/error.rb, line 33 def process_message return @context[:message] if @message_overridden if @i18n.is_a?(Hash) key = 'errawr.' + @key.to_s + '.message' @context[:message] = I18n.t(key, @context.merge({ default: I18n.t('errawr.unknown', @context) })) else @context[:message] = I18n.t('errawr.' + @key.to_s, @context) unless @context[:message] end @context[:message] end