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



116
117
118
# File 'lib/trafaret/validators.rb', line 116

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

Instance Method Details

#prepareObject



112
113
114
# File 'lib/trafaret/validators.rb', line 112

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

#validate(data) ⇒ Object



120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/trafaret/validators.rb', line 120

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