Sha256: 6983ac20457e5689363882fdca7c808dbc177d3c8c1cfa86f347e5d4ec97eb68

Contents?: true

Size: 712 Bytes

Versions: 1

Compression:

Stored size: 712 Bytes

Contents

class HashValidator::Validator::SimpleTypeValidator < HashValidator::Validator::Base
  attr_accessor :name, :klass


  def initialize(name, klass)
    self.name  = name
    self.klass = klass
  end

  def presence_error_message
    "#{name} required"
  end

  def should_validate?(rhs)
    rhs == self.name
  end

  def validate(key, value, validations, errors)
    unless value.is_a?(klass)
      errors[key] = presence_error_message
    end
  end
end


# Create simple type validators
[
  [ 'array',   Array   ],
  [ 'numeric', Numeric ],
  [ 'string',  String  ],
  [ 'time',    Time    ]
].each { |name, klass| HashValidator.append_validator(HashValidator::Validator::SimpleTypeValidator.new(name, klass)) }

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hash_validator-0.1.0 lib/hash_validator/validators/simple_type_validator.rb