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.1.1"
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
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/active_model/errors_details.rb', line 9 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
52 53 54 55 56 57 58 |
# File 'lib/active_model/errors_details.rb', line 52 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
47 48 49 50 |
# File 'lib/active_model/errors_details.rb', line 47 def clear_with_details details.clear clear_without_details end |
#delete_with_details(key) ⇒ Object
42 43 44 45 |
# File 'lib/active_model/errors_details.rb', line 42 def delete_with_details(key) details.delete(key) delete_without_details(key) end |
#details ⇒ Object
33 34 35 |
# File 'lib/active_model/errors_details.rb', line 33 def details @details end |
#initialize_dup_with_details(other) ⇒ Object
28 29 30 31 |
# File 'lib/active_model/errors_details.rb', line 28 def initialize_dup_with_details(other) @details = other.details.deep_dup initialize_dup_without_details(other) end |
#initialize_with_details(base) ⇒ Object
37 38 39 40 |
# File 'lib/active_model/errors_details.rb', line 37 def initialize_with_details(base) @details = Hash.new { |details, attribute| details[attribute] = [] } initialize_without_details(base) end |