Class: Trafaret::Case

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

Instance Attribute Summary

Attributes inherited from Validator

#converters, #options

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



171
172
173
174
175
176
177
178
179
# File 'lib/trafaret/validators.rb', line 171

def call(data)
  @whens.each do |trafaret, blk|
    val = trafaret.call(data)
    unless val.is_a?(Trafaret::Error)
      return blk.call(val)
    end
  end
  failure('Case does not match')
end

#prepareObject



162
163
164
165
# File 'lib/trafaret/validators.rb', line 162

def prepare
  @whens = []
  @converters.shift.call(self)
end

#when(trafaret, &blk) ⇒ Object



167
168
169
# File 'lib/trafaret/validators.rb', line 167

def when(trafaret, &blk)
  @whens << [Trafaret::Constructor.construct_from(trafaret), blk]
end