Class: ActiveModel::ErrorCollecting::ErrorCollection

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/active_model/error_collecting/error_collection.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#baseObject (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, message, options = {})
  self[attribute] << [ message, options ]
end

#added?(attribute, message = nil, options = {}) ⇒ Boolean

Returns:

  • (Boolean)


81
82
83
# File 'lib/active_model/error_collecting/error_collection.rb', line 81

def added?(attribute, message = nil, options = {})
  self[attribute].include? ErrorMessage.build(base, attribute, message, options)
end

#clearObject



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

#eachObject



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 { |error_message| yield attribute, error_message }
  end
end

#empty?Boolean

Returns:

  • (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

Returns:

  • (Boolean)


16
17
18
# File 'lib/active_model/error_collecting/error_collection.rb', line 16

def include?(attribute)
  ( v = @collection[attribute] ) && v.any?
end

#keysObject



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

#sizeObject 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_aObject



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 { |error_message| array << error_message }
  end

  array
end

#to_hashObject



69
70
71
# File 'lib/active_model/error_collecting/error_collection.rb', line 69

def to_hash
  @collection.dup
end

#valuesObject



52
53
54
# File 'lib/active_model/error_collecting/error_collection.rb', line 52

def values
  @collection.values
end