Sha256: 32cf4ebfb3811333657f17322bd00c39d4706153128ff6fd50e7a18d18179941

Contents?: true

Size: 906 Bytes

Versions: 5

Compression:

Stored size: 906 Bytes

Contents

module WeakParameters
  class Validator
    attr_reader :block, :params

    def initialize(params, &block)
      @params = params
      instance_eval(&block)
    end

    def validate
      validators.each(&:validate)
    end

    def validators
      @validators ||= []
    end

    private

    def string(key, options = {})
      validators << WeakParameters::StringValidator.new(params, key, options)
    end

    def integer(key, options = {})
      validators << WeakParameters::IntegerValidator.new(params, key, options)
    end

    def boolean(key, options = {})
      validators << WeakParameters::BooleanValidator.new(params, key, options)
    end

    def hash(key, options = {})
      validators << WeakParameters::HashValidator.new(params, key, options)
    end

    def array(key, options = {})
      validators << WeakParameters::ArrayValidator.new(params, key, options)
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
weak_parameters-0.0.7 lib/weak_parameters/validator.rb
weak_parameters-0.0.6 lib/weak_parameters/validator.rb
weak_parameters-0.0.5 lib/weak_parameters/validator.rb
weak_parameters-0.0.4 lib/weak_parameters/validator.rb
weak_parameters-0.0.3 lib/weak_parameters/validator.rb