Sha256: 639970de55dfb456dcfe17aa7f8336b7013d57ac82c2d5c56856d6a82482638a

Contents?: true

Size: 464 Bytes

Versions: 1

Compression:

Stored size: 464 Bytes

Contents

module Hval
  class Schema
    include Hval::Validators
    
    def initialize(schema)
      @validators = schema.collect do |op, spec|
        method("validate_#{op}").call(spec)
      end
    end
    
    def validators
      @validators
    end
    
    def call(value)
      @validators.collect do |validator|
        validator.call(value)
      end
    end
    
    def match?(value)
      Hval::Result.new(self.call(value)).success?
    end
    
  end  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hval-0.1.1 lib/hval/schema.rb