Class: Alchemrest::Transforms::WithConstraint

Inherits:
Morpher::Transform
  • Object
show all
Defined in:
lib/alchemrest/transforms/with_constraint.rb

Constant Summary collapse

MESSAGE =
%(Input %<actual>p does not meet the constraint "%<description>s")

Instance Method Summary collapse

Constructor Details

#initialize(constraint) ⇒ WithConstraint

Returns a new instance of WithConstraint.

Raises:

  • (ArgumentError)


9
10
11
12
13
# File 'lib/alchemrest/transforms/with_constraint.rb', line 9

def initialize(constraint)
  raise ArgumentError, "Must provide an instance of Alchemrest::Transform::Constraint" unless constraint.is_a?(Constraint)

  super
end

Instance Method Details

#call(input) ⇒ Object



15
16
17
18
19
20
21
22
23
# File 'lib/alchemrest/transforms/with_constraint.rb', line 15

def call(input)
  if constraint.meets_conditions?(input)
    success(input)
  else
    failure(
      error(input:, message: format(MESSAGE, actual: input, description: constraint.description)),
    )
  end
end