Class: JsonValidation::Validators::Items
- Inherits:
-
Validator
- Object
- Validator
- JsonValidation::Validators::Items
show all
- Defined in:
- lib/json_validation/validators/items.rb
Instance Attribute Summary
Attributes inherited from Validator
#base_uri, #fragment
Instance Method Summary
collapse
Methods inherited from Validator
#build_validator, #build_validator_with_new_base_uri, #initialize, type
Instance Method Details
#inner_validator ⇒ Object
19
20
21
22
|
# File 'lib/json_validation/validators/items.rb', line 19
def inner_validator
raise unless fragment["items"].is_a?(Hash)
@inner_validator ||= build_validator(fragment["items"])
end
|
#inner_validators ⇒ Object
24
25
26
27
28
29
|
# File 'lib/json_validation/validators/items.rb', line 24
def inner_validators
raise unless fragment["items"].is_a?(Array)
@inner_validators ||= fragment["items"].map {|f|
build_validator(f)
}
end
|
#validate(record) ⇒ Object
6
7
8
9
10
11
12
13
14
15
16
17
|
# File 'lib/json_validation/validators/items.rb', line 6
def validate(record)
case fragment['items']
when Hash
record.all? {|item| inner_validator.validate(item)}
when Array
inner_validators.zip(record).all? {|validator, item|
validator.validate(item)
}
else
raise "Unexpected type for fragment['items']"
end
end
|