Class: StrongerParameters::ArrayConstraint

Inherits:
Constraint
  • Object
show all
Defined in:
lib/stronger_parameters/constraints/array_constraint.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Constraint

#&, #required, #required?, #|

Constructor Details

#initialize(item_constraint) ⇒ ArrayConstraint

Returns a new instance of ArrayConstraint.



8
9
10
# File 'lib/stronger_parameters/constraints/array_constraint.rb', line 8

def initialize(item_constraint)
  @item_constraint = item_constraint
end

Instance Attribute Details

#item_constraintObject (readonly)

Returns the value of attribute item_constraint.



6
7
8
# File 'lib/stronger_parameters/constraints/array_constraint.rb', line 6

def item_constraint
  @item_constraint
end

Instance Method Details

#==(other) ⇒ Object



25
26
27
# File 'lib/stronger_parameters/constraints/array_constraint.rb', line 25

def ==(other)
  super && item_constraint == other.item_constraint
end

#value(v) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/stronger_parameters/constraints/array_constraint.rb', line 12

def value(v)
  if v.is_a?(Array)
    return v.map do |item|
      result = item_constraint.value(item)
      return result if result.is_a?(InvalidValue)

      result
    end
  end

  InvalidValue.new(v, "must be an array")
end