Class: InputSanitizer::V2::ErrorCollection

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/input_sanitizer/v2/error_collection.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(errors) ⇒ ErrorCollection

Returns a new instance of ErrorCollection.



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/input_sanitizer/v2/error_collection.rb', line 6

def initialize(errors)
  @error_codes = {}
  @messages = {}
  @error_details = {}

  errors.each do |error|
    (@error_codes[error.field] ||= []) << error.code
    (@messages[error.field] ||= []) << error.message
    error_value_hash = { :value => error.value }
    (@error_details[error.field] ||= []) << error_value_hash
  end
end

Instance Attribute Details

#error_codesObject (readonly)

Returns the value of attribute error_codes.



4
5
6
# File 'lib/input_sanitizer/v2/error_collection.rb', line 4

def error_codes
  @error_codes
end

#messagesObject (readonly)

Returns the value of attribute messages.



4
5
6
# File 'lib/input_sanitizer/v2/error_collection.rb', line 4

def messages
  @messages
end

Instance Method Details

#[](attribute) ⇒ Object



19
20
21
# File 'lib/input_sanitizer/v2/error_collection.rb', line 19

def [](attribute)
  @error_codes[attribute]
end

#add(attribute, code = :invalid, options = {}) ⇒ Object



39
40
41
42
43
# File 'lib/input_sanitizer/v2/error_collection.rb', line 39

def add(attribute, code = :invalid, options = {})
  (@error_codes[attribute] ||= []) << code
  (@messages[attribute] ||= []) << options.delete(:messages)
  (@error_details[attribute] ||= []) << options
end

#eachObject



23
24
25
26
27
# File 'lib/input_sanitizer/v2/error_collection.rb', line 23

def each
  @error_codes.each_key do |attribute|
    self[attribute].each { |error| yield attribute, error }
  end
end

#empty?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/input_sanitizer/v2/error_collection.rb', line 35

def empty?
  @error_codes.empty?
end

#sizeObject Also known as: length, count



29
30
31
# File 'lib/input_sanitizer/v2/error_collection.rb', line 29

def size
  @error_codes.size
end

#to_hashObject Also known as: full_messages



45
46
47
# File 'lib/input_sanitizer/v2/error_collection.rb', line 45

def to_hash
  messages.dup
end