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
137 138 139 140 |
# File 'lib/trafaret/validators.rb', line 137 def prepare @key_validator = @args.first @value_validator = @args[1] end |
#validate(data) ⇒ Object
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 |
# File 'lib/trafaret/validators.rb', line 142 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 |