Class: Trafaret::Base
- Extended by:
- ClassMethods
- Defined in:
- lib/trafaret/base.rb
Defined Under Namespace
Modules: ClassMethods
Instance Attribute Summary collapse
-
#keys ⇒ Object
Returns the value of attribute keys.
Attributes inherited from Validator
Instance Method Summary collapse
Methods included from ClassMethods
Methods inherited from Validator
#&, #===, #add, #call, #convert, #failure, #initialize, #perform_convert, #to, #|
Constructor Details
This class inherits a constructor from Trafaret::Validator
Instance Attribute Details
#keys ⇒ Object
Returns the value of attribute keys.
65 66 67 |
# File 'lib/trafaret/base.rb', line 65 def keys @keys end |
Instance Method Details
#key(name, validator, options = {}, &blk) ⇒ Object
72 73 74 |
# File 'lib/trafaret/base.rb', line 72 def key(name, validator, = {}, &blk) @keys << Key.new(name, validator, , &blk) end |
#prepare ⇒ Object
67 68 69 70 |
# File 'lib/trafaret/base.rb', line 67 def prepare @keys = @options[:keys] || [] @keys.concat(self.class.keys || []) end |
#validate(data) ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/trafaret/base.rb', line 76 def validate(data) return failure('Not a Hash') unless data.is_a?(::Hash) res = [] fails = [] @keys.each do |key| vdata = key.call(data) next unless vdata if vdata[1].is_a? Trafaret::Error fails << vdata else res << vdata end end if fails.blank? Hash[res] else failure(Hash[fails]) end end |