Module: Dry::Transaction::Extra::ActiveRecordRescues

Defined in:
lib/dry/transaction/extra/active_record_rescues.rb

Constant Summary collapse

RESCUE_ERRORS =
[
  ActiveRecord::RecordInvalid,
  ActiveRecord::RecordNotFound,
  ActiveRecord::RecordNotUnique
].freeze

Instance Method Summary collapse

Instance Method Details

#with_broadcast(args) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/dry/transaction/extra/active_record_rescues.rb', line 13

def with_broadcast(args)
  super
rescue *RESCUE_ERRORS => e
  error = adapter.options[:message] || e
  Failure(
    Dry::Transaction::StepFailure.call(self, error) do
      publish(:step_failed, step_name: name, args: args, value: error)
    end
  )
end