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
188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 |
# File 'lib/trafaret/validators.rb', line 188 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
183 184 185 186 |
# File 'lib/trafaret/validators.rb', line 183 def prepare @validators = @args.map { |arg| Trafaret.get_instantiated_validator(arg) } @size = @validators.size end |