Module: Provenance::TransactionKey

Defined in:
lib/provenance/transaction_key.rb

Overview

Builds the transaction key used to group changes inside the journal. A single format is shared across the gem (Trackable and BulkOperations); otherwise rollback cleanup (‘remove_changes_for_transaction`) would fail to match the paired records.

Class Method Summary collapse

Class Method Details

.for_connection(connection) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/provenance/transaction_key.rb', line 11

def for_connection(connection)
  request_id = Provenance::Context.request_id
  return request_id unless connection.transaction_open?

  current = connection.current_transaction
  current ? "#{request_id}:#{current.object_id}" : "#{request_id}:#{connection.open_transactions}"
end