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 |