Module: Brainstem::Concerns::ErrorPresentation
- Extended by:
- ActiveSupport::Concern
- Included in:
- Brainstem::ControllerMethods
- Defined in:
- lib/brainstem/concerns/error_presentation.rb
Instance Method Summary collapse
-
#brainstem_full_error_message(object, attribute, text) ⇒ Object
Helper to convert an attribute name (e.g., “thing_id”) and error (e.g., “is invalid”) into a combined full message.
-
#brainstem_model_error(object_or_objects, options = {}) ⇒ Object
Given a model or models, outputs Brainstem-style errors, for example: { :errors => [{ :type => ‘validation’, :field => :thing_id, :message => “Thing is required” }] } If given a rewrite_params hash, it will convert from an internal column name to an external name.
-
#brainstem_system_error(*messages) ⇒ Object
Given one or more error messages, return Brainstem-style errors, defaulting to type ‘system’.
Instance Method Details
#brainstem_full_error_message(object, attribute, text) ⇒ Object
Helper to convert an attribute name (e.g., “thing_id”) and error (e.g., “is invalid”) into a combined full message. Also handles traditional “^You messed up”-style errors that should not be combined with humanized attribute names.
53 54 55 |
# File 'lib/brainstem/concerns/error_presentation.rb', line 53 def (object, attribute, text) text[0] == "^" ? text[1..-1] : object.errors.(attribute, text) end |
#brainstem_model_error(object_or_objects, options = {}) ⇒ Object
Given a model or models, outputs Brainstem-style errors, for example:
{ :errors => [{ :type => 'validation', :field => :thing_id, :message => "Thing is required" }] }
If given a rewrite_params hash, it will convert from an internal column name to an external name. Note: you must validate models prior to passing them into this method. It does not call ‘valid?` on them.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/brainstem/concerns/error_presentation.rb', line 23 def brainstem_model_error(object_or_objects, = {}) json = { :errors => [] } [object_or_objects].flatten.each.with_index do |object, index| case object when Hash attribute = object[:field] || :base json[:errors] << { :type => object[:type] || 'validation', :field => ([:rewrite_params] || {}).reverse_merge(attribute => attribute).invert[attribute], :message => object[:message] || raise(ArgumentError, "message required") } when String json[:errors] << { :type => 'validation', :field => :base, :message => object } else object.errors.each do |attribute, attribute_error| json[:errors] << { :type => 'validation', :field => ([:rewrite_params] || {}).reverse_merge(attribute => attribute).invert[attribute], :message => (object, attribute, attribute_error), :index => index } end end end json end |
#brainstem_system_error(*messages) ⇒ Object
Given one or more error messages, return Brainstem-style errors, defaulting to type ‘system’.
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/brainstem/concerns/error_presentation.rb', line 7 def brainstem_system_error(*) = .last.is_a?(Hash) ? .pop : {} response = { :errors => [] } .flatten.uniq.each do || response[:errors] << { :type => [:type] || :system, :message => } end response end |