class SmartError::BaseError

The Base Class of Errors

Public Class Methods

new(error, options = {}) click to toggle source
# File lib/smart_error/base_error.rb, line 6
def initialize(error, options = {})
  @error   = error
  @options = options&.symbolize_keys! || {}
end

Public Instance Methods

as_json() click to toggle source
# File lib/smart_error/base_error.rb, line 56
def as_json
  to_h.as_json
end
details() click to toggle source

:nocov:

# File lib/smart_error/base_error.rb, line 20
def details
  {}
end
error_code()
Alias for: not_implemented
error_url() click to toggle source
# File lib/smart_error/base_error.rb, line 24
def error_url
  SmartError.base_url.to_s + (error_code || 1000).to_s
end
extra_message() click to toggle source
# File lib/smart_error/base_error.rb, line 35
def extra_message
  if @options[:extra].is_a?(Array)
    @options[:extra].map(&:to_s).to_sentence
  elsif @options[:extra].is_a?(String)
    @options[:extra]
  end
end
full_message() click to toggle source
# File lib/smart_error/base_error.rb, line 28
def full_message
  [
    @options[:message].present? ? @options[:message] : message,
    extra_message
  ].compact.join(': ')
end
message()
Alias for: not_implemented
not_implemented() click to toggle source

:nocov:

# File lib/smart_error/base_error.rb, line 12
def not_implemented
  raise NotImplementedError
end
Also aliased as: message, error_code
to_h() click to toggle source
# File lib/smart_error/base_error.rb, line 43
def to_h
  {
    message:    full_message,
    details:    details,
    error_url:  error_url,
    error_code: error_code
  }
end
to_json() click to toggle source
# File lib/smart_error/base_error.rb, line 52
def to_json
  to_h.to_json
end