Class: Grape::Validations::Types::ArrayCoercer
- Inherits:
-
DryTypeCoercer
- Object
- DryTypeCoercer
- Grape::Validations::Types::ArrayCoercer
- Defined in:
- lib/grape/validations/types/array_coercer.rb
Overview
Coerces elements in an array. It might be an array of strings or integers or an array of arrays of integers.
It could’ve been possible to use an of
method (dry-rb.org/gems/dry-types/1.2/array-with-member/) provided by dry-types. Unfortunately, it doesn’t work for Grape because of behavior of Virtus which was used earlier, a ‘Grape::Validations::Types::PrimitiveCoercer` maintains Virtus behavior in coercing.
Direct Known Subclasses
Instance Method Summary collapse
- #call(_val) ⇒ Object
-
#initialize(type, strict = false) ⇒ ArrayCoercer
constructor
A new instance of ArrayCoercer.
Methods inherited from DryTypeCoercer
coercer_instance_for, collection_coercer_for
Constructor Details
#initialize(type, strict = false) ⇒ ArrayCoercer
Returns a new instance of ArrayCoercer.
17 18 19 20 21 22 |
# File 'lib/grape/validations/types/array_coercer.rb', line 17 def initialize(type, strict = false) super @coercer = scope::Array @subtype = type.first end |
Instance Method Details
#call(_val) ⇒ Object
24 25 26 27 28 29 |
# File 'lib/grape/validations/types/array_coercer.rb', line 24 def call(_val) collection = super return collection if collection.is_a?(InvalidValue) coerce_elements collection end |