Class: Trafaret::Array

Inherits:
Validator show all
Defined in:
lib/trafaret/validators.rb

Instance Attribute Summary

Attributes inherited from Validator

#converters, #options

Class Method Summary collapse

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

Class Method Details

.[](validator, options = {}) ⇒ Object



103
104
105
# File 'lib/trafaret/validators.rb', line 103

def self.[](validator, options = {})
  self.new(options.merge(validator: validator))
end

Instance Method Details

#prepareObject



99
100
101
# File 'lib/trafaret/validators.rb', line 99

def prepare
  @cls = Trafaret.get_instantiated_validator(@options.delete(:validator), @options)
end

#validate(data) ⇒ Object



107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/trafaret/validators.rb', line 107

def validate(data)
  return failure('Not an Array') unless data.is_a? ::Array
  fails = {}
  res = data.map.with_index do |elem, index|
    val = @cls.call elem
    fails[index] = val if val.is_a? Trafaret::Error
    val
  end
  if fails.blank?
    return res
  else
    return failure(fails)
  end
end