# File lib/apipie/validator.rb, line 196 def description "Must be a Hash" end
# File lib/apipie/validator.rb, line 207 def expected_type 'hash' end
# 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
# 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
# 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
# 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