class Dry::Transaction::StepAdapters::Try

@api private

Public Instance Methods

call(operation, options, args) click to toggle source
# File lib/dry/transaction/step_adapters/try.rb, line 12
def call(operation, options, args)
  unless options[:catch]
    raise MissingCatchListError, options[:step_name]
  end

  result = operation.(*args)
  Success(result)
rescue *Array(options[:catch]) => e
  e = options[:raise].new(e.message) if options[:raise]
  Failure(e)
end