Class: Trafaret::Tuple
- Defined in:
- lib/trafaret/validators.rb
Instance Attribute Summary
Attributes inherited from Validator
Instance Method Summary collapse
Methods inherited from Validator
#&, #===, #add, #convert, #failure, #initialize, #perform_convert, #to, #validate, #|
Constructor Details
This class inherits a constructor from Trafaret::Validator
Instance Method Details
#call(data) ⇒ Object
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 |
# File 'lib/trafaret/validators.rb', line 201 def call(data) return failure('Too many elements') if data.size > @size# && !@extra return failure('Not enough elements') if data.size < @size failures = {} result = [] data[0..@size].each.with_index do |el, index| val = @validators[index].call(el) result << val failures[index] = val if val.is_a? Trafaret::Error end if failures.empty? result else failure(failures) end end |
#prepare ⇒ Object
196 197 198 199 |
# File 'lib/trafaret/validators.rb', line 196 def prepare @validators = @args.map { |arg| Trafaret.get_instantiated_validator(arg) } @size = @validators.size end |