class Braintree::ValidationErrorCollection
Public Class Methods
new(data)
click to toggle source
# File lib/braintree/validation_error_collection.rb, line 5 def initialize(data) return if !data.is_a? Hash @errors = (data[:errors] || {}).map { |hash| Braintree::ValidationError.new(hash) } @nested = {} data.keys.each do |key| next if key == :errors @nested[key] = ValidationErrorCollection.new(data[key]) end end
Public Instance Methods
[](index)
click to toggle source
Accesses the error at the given index.
# File lib/braintree/validation_error_collection.rb, line 16 def [](index) @errors[index] end
_inner_inspect(scope = [])
click to toggle source
# File lib/braintree/validation_error_collection.rb, line 64 def _inner_inspect(scope = []) all = [] scope_string = scope.join("/") if @errors.any? all << "#{scope_string}:[" + @errors.map { |e| "(#{e.code}) #{e.message}" }.join(", ") + "]" end @nested.each do |key, values| all << values._inner_inspect(scope + [key]) end all.join(", ") end
deep_errors()
click to toggle source
Returns an array of ValidationError
objects at this level and all nested levels in the error hierarchy
# File lib/braintree/validation_error_collection.rb, line 22 def deep_errors ([@errors] + @nested.values.map { |error_collection| error_collection.deep_errors }).flatten end
deep_size()
click to toggle source
# File lib/braintree/validation_error_collection.rb, line 26 def deep_size size + @nested.values.inject(0) { |count, error_collection| count + error_collection.deep_size } end
each(&block)
click to toggle source
Iterates over errors at the current level. Nested errors will not be yielded.
# File lib/braintree/validation_error_collection.rb, line 31 def each(&block) @errors.each(&block) end
for(nested_key)
click to toggle source
Returns a ValidationErrorCollection
of errors nested under the given nested_key. Returns nil if there are not any errors nested under the given key.
# File lib/braintree/validation_error_collection.rb, line 37 def for(nested_key) @nested[nested_key] end
for_index(index)
click to toggle source
# File lib/braintree/validation_error_collection.rb, line 41 def for_index(index) self.for("index_#{index}".to_sym) end
inspect()
click to toggle source
# File lib/braintree/validation_error_collection.rb, line 45 def inspect "#<#{self.class} errors#{_inner_inspect}>" end
on(attribute)
click to toggle source
Returns an array of ValidationError
objects on the given attribute.
# File lib/braintree/validation_error_collection.rb, line 50 def on(attribute) @errors.select { |error| error.attribute == attribute.to_s } end
shallow_errors()
click to toggle source
Returns an array of ValidationError
objects at the given level in the error hierarchy
# File lib/braintree/validation_error_collection.rb, line 55 def shallow_errors @errors.dup end
size()
click to toggle source
The number of errors at this level. This does not include nested errors.
# File lib/braintree/validation_error_collection.rb, line 60 def size @errors.size end