Module: CommandTower::Transactional
- Included in:
- Services::ApplicationService, Workflows::ApplicationWorkflow
- Defined in:
- app/workflows/command_tower/transactional.rb
Overview
Generic ActiveRecord atomic boundary shared by ApplicationWorkflow and ApplicationService. Layer-specific result contracts are supplied by includers.
Defined Under Namespace
Classes: InvalidTransactionResult, TransactionFailure
Instance Method Summary collapse
Instance Method Details
#fail_transaction!(result) ⇒ Object
29 30 31 32 33 34 35 |
# File 'app/workflows/command_tower/transactional.rb', line 29 def fail_transaction!(result) unless acceptable_failure_result?(result) raise InvalidTransactionResult, end raise TransactionFailure.new(result) end |
#transaction ⇒ Object
18 19 20 21 22 23 24 25 26 27 |
# File 'app/workflows/command_tower/transactional.rb', line 18 def transaction result = nil ActiveRecord::Base.transaction do result = yield validate_transaction_success!(result) end result rescue TransactionFailure => e handle_transaction_failure(e.result) end |