Class: ActiveModel::ErrorCollecting::ErrorCollection
- Inherits:
-
Object
- Object
- ActiveModel::ErrorCollecting::ErrorCollection
- Includes:
- Enumerable
- Defined in:
- lib/active_model/error_collecting/error_collection.rb
Instance Attribute Summary collapse
-
#base ⇒ Object
readonly
Returns the value of attribute base.
Instance Method Summary collapse
- #[](attribute) ⇒ Object
- #[]=(attribute, error) ⇒ Object
- #add(attribute, message, options = {}) ⇒ Object
- #added?(attribute, message = nil, options = {}) ⇒ Boolean
- #clear ⇒ Object
- #delete(attribute) ⇒ Object
- #each ⇒ Object
- #empty? ⇒ Boolean
- #get(attribute) ⇒ Object
- #include?(attribute) ⇒ Boolean
-
#initialize(base) ⇒ ErrorCollection
constructor
A new instance of ErrorCollection.
- #keys ⇒ Object
- #set(attribute, errors) ⇒ Object
- #size ⇒ Object (also: #count)
- #to_a ⇒ Object
- #to_hash ⇒ Object
- #values ⇒ Object
Constructor Details
#initialize(base) ⇒ ErrorCollection
Returns a new instance of ErrorCollection.
7 8 9 10 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 7 def initialize(base) @base = base @collection = {} end |
Instance Attribute Details
#base ⇒ Object (readonly)
Returns the value of attribute base.
6 7 8 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 6 def base @base end |
Instance Method Details
#[](attribute) ⇒ Object
33 34 35 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 33 def [](attribute) get(attribute.to_sym) || set(attribute.to_sym, []) end |
#[]=(attribute, error) ⇒ Object
37 38 39 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 37 def []=(attribute, error) self[attribute] << error end |
#add(attribute, message, options = {}) ⇒ Object
77 78 79 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 77 def add(attribute, , = {}) self[attribute] << [ , ] end |
#added?(attribute, message = nil, options = {}) ⇒ Boolean
81 82 83 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 81 def added?(attribute, = nil, = {}) self[attribute].include? ErrorMessage.build(base, attribute, , ) end |
#clear ⇒ Object
12 13 14 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 12 def clear @collection.clear end |
#delete(attribute) ⇒ Object
29 30 31 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 29 def delete(attribute) @collection.delete attribute end |
#each ⇒ Object
41 42 43 44 45 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 41 def each @collection.each_key do |attribute| self[attribute].each { || yield attribute, } end end |
#empty? ⇒ Boolean
73 74 75 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 73 def empty? size == 0 end |
#get(attribute) ⇒ Object
20 21 22 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 20 def get(attribute) @collection[attribute] end |
#include?(attribute) ⇒ Boolean
16 17 18 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 16 def include?(attribute) ( v = @collection[attribute] ) && v.any? end |
#keys ⇒ Object
56 57 58 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 56 def keys @collection.keys end |
#set(attribute, errors) ⇒ Object
24 25 26 27 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 24 def set(attribute, errors) return delete attribute if errors.nil? @collection[attribute] = ErrorMessageSet.new(base, attribute, errors) end |
#size ⇒ Object Also known as: count
47 48 49 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 47 def size values.inject(0){ |sum, set| sum += set.size } end |
#to_a ⇒ Object
60 61 62 63 64 65 66 67 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 60 def to_a array = [] @collection.each_key do |attribute| self[attribute].each { || array << } end array end |
#to_hash ⇒ Object
69 70 71 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 69 def to_hash @collection.dup end |
#values ⇒ Object
52 53 54 |
# File 'lib/active_model/error_collecting/error_collection.rb', line 52 def values @collection.values end |