class Pelita::Operation::AttemptAdapter

Public Instance Methods

call(step, input, *args) click to toggle source
# File lib/pelita/operation/attempt_adapter.rb, line 6
def call(step, input, *args)
  unless step.options[:catch]
    raise ArgumentError, "+attempt+ steps require one or more exception classes provided via +catch:+"
  end

  step.operation.call(input, *args)
rescue *Array(step.options[:catch]) => e
  e = step.options[:raise].new(e.message) if step.options[:raise]
  input["error"] = e
  Left(input)
end