Sha256: b6173b614b1bc2ac34b8509c9b7207c81cc79f51a739bcc1c483e38cd1e16609
Contents?: true
Size: 1.03 KB
Versions: 10
Compression:
Stored size: 1.03 KB
Contents
# frozen_string_literal: true module Opera module Operation module Instructions module Executors class Transaction < Executor class RollbackTransactionError < Opera::Error; end def call(instruction) transaction_wrapper do super raise(transaction_error) if result.failure? end rescue transaction_error nil end def transaction_wrapper return transaction_class.send(transaction_method) { yield } unless transaction_options transaction_class.send(transaction_method, **transaction_options) { yield } end def transaction_class config.transaction_class end def transaction_method config.transaction_method end def transaction_options config.transaction_options end def transaction_error RollbackTransactionError end end end end end end
Version data entries
10 entries across 10 versions & 1 rubygems