class Mongoid::Errors::MongoidError

Default parent Mongoid error for all custom errors. This handles the base key for the translations and provides the convenience method for translating the messages.

Constants

BASE_KEY

Attributes

problem[R]
resolution[R]
summary[R]

Public Instance Methods

compose_message(key, attributes = {}) click to toggle source

Compose the message.

@example Create the message

error.compose_message

@return [ String ] The composed message.

@since 3.0.0

# File lib/mongoid/errors/mongoid_error.rb, line 24
def compose_message(key, attributes = {})
  @problem = translate_problem(key, attributes)
  @summary = translate_summary(key, attributes)
  @resolution = translate_resolution(key, attributes)
  @problem_title = translate("message_title", {})
  @summary_title = translate("summary_title", {})
  @resolution_title = translate("resolution_title", {})


  "\n#{@problem_title}:\n  #{@problem}"+
  "\n#{@summary_title}:\n  #{@summary}"+
  "\n#{@resolution_title}:\n  #{@resolution}"
end

Private Instance Methods

translate(key, options) click to toggle source

Given the key of the specific error and the options hash, translate the message.

@example Translate the message.

error.translate("errors", :key => value)

@param [ String ] key The key of the error in the locales. @param [ Hash ] options The objects to pass to create the message.

@return [ String ] A localized error message string.

# File lib/mongoid/errors/mongoid_error.rb, line 50
def translate(key, options)
  ::I18n.translate("#{BASE_KEY}.#{key}", **options)
end
translate_problem(key, attributes) click to toggle source

Create the problem.

@example Create the problem.

error.problem("error", {})

@param [ String, Symbol ] key The error key. @param [ Hash ] attributes The attributes to interpolate.

@return [ String ] The problem.

@since 3.0.0

# File lib/mongoid/errors/mongoid_error.rb, line 65
def translate_problem(key, attributes)
  translate("#{key}.message", attributes)
end
translate_resolution(key, attributes) click to toggle source

Create the resolution.

@example Create the resolution.

error.resolution("error", {})

@param [ String, Symbol ] key The error key. @param [ Hash ] attributes The attributes to interpolate.

@return [ String ] The resolution.

@since 3.0.0

# File lib/mongoid/errors/mongoid_error.rb, line 95
def translate_resolution(key, attributes)
  translate("#{key}.resolution", attributes)
end
translate_summary(key, attributes) click to toggle source

Create the summary.

@example Create the summary.

error.summary("error", {})

@param [ String, Symbol ] key The error key. @param [ Hash ] attributes The attributes to interpolate.

@return [ String ] The summary.

@since 3.0.0

# File lib/mongoid/errors/mongoid_error.rb, line 80
def translate_summary(key, attributes)
  translate("#{key}.summary", attributes)
end