Class: Trafaret::Mapping
- Defined in:
- lib/trafaret/validators.rb
Instance Attribute Summary
Attributes inherited from Validator
Instance Method Summary collapse
Methods inherited from Validator
#&, #===, #add, #call, #convert, #failure, #initialize, #perform_convert, #to, #|
Constructor Details
This class inherits a constructor from Trafaret::Validator
Instance Method Details
#prepare ⇒ Object
124 125 126 127 |
# File 'lib/trafaret/validators.rb', line 124 def prepare @key_validator = @args.first @value_validator = @args[1] end |
#validate(data) ⇒ Object
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
# File 'lib/trafaret/validators.rb', line 129 def validate(data) return failure('Not a Hash') unless data.is_a? ::Hash fails = [] pairs = [] data.each do |k, v| kv = @key_validator.call(k) vv = @value_validator.call(v) if (kv.is_a? Trafaret::Error) || (vv.is_a? Trafaret::Error) fails << [k, [kv, vv]] else pairs << [kv, vv] end end if fails.blank? Hash[pairs] else failure(Hash[fails]) end end |