Valuedate¶ ↑
Validates values using a schema.
Usage¶ ↑
schema = Valuedate.schema do value.is_a(String).equals("test") end schema.validate("test") # => true schema.validate("fail") # => false schema.validate(23) # => false deep = Valuedate.schema do value.hash( :type => value.is_a(String), :value => value.hash( :src => value.is_a(String), :height => optional_value.is_a(Fixnum), :width => optional_value.is_a(Fixnum) ) ) end deep.validate( :type => "image", :value => { :src => "/bold.gif", :height => 80, :width => 80 } ) # => true # :height and width are optional deep.validate(:type => "image", :value => { :src => "/bold.gif" }) # => true
Matchers¶ ↑
Following matchers are defined:
-
is_a(Class)
-
equals(expected)
-
any(list of validators)
-
in(range, array or anything that responds_to #include?)
-
is { |value| boolean }
-
not { |value| boolean }
Missing matchers?¶ ↑
Use #is and #not:
schema = Valuedate.schema do value.hash( :array => value.not { |value| value.empty? }, :rgb => value.is { |value| value.size == 3 } ) end schema.validate(:array => [1], :rgb => [1,2,3]) # => true schema.validate(:array => [1], :rgb => [1,2]) # => false
Defining matchers¶ ↑
Valuedate.matcher(:equals) { |value, expected| value == expected }
Install¶ ↑
git clone ... rake install
Authors¶ ↑
-
Peter Suschlik
TODO¶ ↑
-
Implement and aggregate errors