Class: Grape::Validations::Types::Json
- Inherits:
-
Object
- Object
- Grape::Validations::Types::Json
- Defined in:
- lib/grape/validations/types/json.rb
Overview
Handles coercion and type checking for parameters that are complex types given as JSON-encoded strings. It accepts both JSON objects and arrays of objects, and will coerce the input to a Hash
or Array
object respectively. In either case the Grape validation system will apply nested validation rules to all returned objects.
Direct Known Subclasses
Class Method Summary collapse
-
.parse(input) ⇒ Hash, ...
Coerce the input into a JSON-like data structure.
-
.parsed?(value) ⇒ true, false
Checks that the input was parsed successfully and isn’t something odd such as an array of primitives.
Class Method Details
.parse(input) ⇒ Hash, ...
Coerce the input into a JSON-like data structure.
18 19 20 21 22 23 24 25 |
# File 'lib/grape/validations/types/json.rb', line 18 def parse(input) return input if parsed?(input) # Allow nulls and blank strings return if input.nil? || input.match?(/^\s*$/) JSON.parse(input, symbolize_names: true) end |
.parsed?(value) ⇒ true, false
Checks that the input was parsed successfully and isn’t something odd such as an array of primitives.
32 33 34 |
# File 'lib/grape/validations/types/json.rb', line 32 def parsed?(value) value.is_a?(::Hash) || coerced_collection?(value) end |