Module: ActiveModel::ErrorsDetails
- Defined in:
- lib/active_model/errors_details.rb,
lib/active_model/errors_details/version.rb
Constant Summary collapse
- MESSAGE_OPTIONS =
[:message]
- VERSION =
"1.2.0"
Class Method Summary collapse
Instance Method Summary collapse
- #add_with_details(attribute, message = :invalid, options = {}) ⇒ Object
- #clear_with_details ⇒ Object
- #delete_with_details(key) ⇒ Object
- #details ⇒ Object
- #initialize_dup_with_details(other) ⇒ Object
- #initialize_with_details(base) ⇒ Object
Class Method Details
.included(base) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/active_model/errors_details.rb', line 35 def self.included(base) base.class_eval do alias_method :initialize_without_details, :initialize alias_method :initialize, :initialize_with_details alias_method :initialize_dup_without_details, :initialize_dup alias_method :initialize_dup, :initialize_dup_with_details alias_method :delete_without_details, :delete alias_method :delete, :delete_with_details alias_method :clear_without_details, :clear alias_method :clear, :clear_with_details alias_method :add_without_details, :add alias_method :add, :add_with_details end end |
Instance Method Details
#add_with_details(attribute, message = :invalid, options = {}) ⇒ Object
78 79 80 81 82 83 84 |
# File 'lib/active_model/errors_details.rb', line 78 def add_with_details(attribute, = :invalid, = {}) = .call if .respond_to?(:call) error = {error: }.merge(.except(*::ActiveModel::Errors::CALLBACKS_OPTIONS + MESSAGE_OPTIONS)) details[attribute.to_sym] << error add_without_details(attribute, , ) end |
#clear_with_details ⇒ Object
73 74 75 76 |
# File 'lib/active_model/errors_details.rb', line 73 def clear_with_details details.clear clear_without_details end |
#delete_with_details(key) ⇒ Object
68 69 70 71 |
# File 'lib/active_model/errors_details.rb', line 68 def delete_with_details(key) details.delete(key) delete_without_details(key) end |
#details ⇒ Object
59 60 61 |
# File 'lib/active_model/errors_details.rb', line 59 def details @details end |
#initialize_dup_with_details(other) ⇒ Object
54 55 56 57 |
# File 'lib/active_model/errors_details.rb', line 54 def initialize_dup_with_details(other) @details = other.details.deep_dup initialize_dup_without_details(other) end |
#initialize_with_details(base) ⇒ Object
63 64 65 66 |
# File 'lib/active_model/errors_details.rb', line 63 def initialize_with_details(base) @details = Hash.new { |details, attribute| details[attribute] = [] } initialize_without_details(base) end |