class Apipie::Validator::HashValidator

Attributes

hash_params_ordered[R]

Public Class Methods

build(param_description, argument, options, block) click to toggle source
# File lib/apipie/validator.rb, line 174
def self.build(param_description, argument, options, block)
  self.new(param_description, block) if block.is_a?(Proc) && block.arity <= 0 && argument == Hash
end
new(param_description, argument) click to toggle source
# File lib/apipie/validator.rb, line 178
def initialize(param_description, argument)
  super(param_description)
  @proc = argument
  @hash_params_ordered = []
  @hash_params = {}

  self.instance_exec(&@proc)
end

Public Instance Methods

description() click to toggle source
# File lib/apipie/validator.rb, line 196
def description
  "Must be a Hash"
end
expected_type() click to toggle source
# File lib/apipie/validator.rb, line 207
def expected_type
  'hash'
end
param(param_name, validator, desc_or_options = nil, options = {}, &block) click to toggle source
# File lib/apipie/validator.rb, line 200
def param(param_name, validator, desc_or_options = nil, options = {}, &block)
  param_description = Apipie::ParamDescription.new(param_name, validator, desc_or_options, options, &block)
  param_description.parent = self.param_description
  @hash_params_ordered << param_description
  @hash_params[param_name.to_sym] = param_description
end
validate(value) click to toggle source
# File lib/apipie/validator.rb, line 187
def validate(value)
  if @hash_params
    @hash_params.each do |k, p|
      p.validate(value[k]) if value.has_key?(k) || p.required
    end
  end
  return true
end