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 182
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 186
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 208
def description
  "Has to be hash."
end
error() click to toggle source
# File lib/apipie/validator.rb, line 204
def error
  "Has to be hash."
end
expected_type() click to toggle source
# File lib/apipie/validator.rb, line 219
def expected_type
  'hash'
end
param(param_name, *args, &block) click to toggle source
# File lib/apipie/validator.rb, line 212
def param(param_name, *args, &block)
  param_description = Apipie::ParamDescription.new(param_name, *args, &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 195
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