Class: ActiveRecord::ConnectionAdapters::TransactionInstrumenter
- Inherits:
-
Object
- Object
- ActiveRecord::ConnectionAdapters::TransactionInstrumenter
show all
- Defined in:
- activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
Defined Under Namespace
Classes: InstrumentationAlreadyStartedError, InstrumentationNotStartedError
Instance Method Summary
collapse
Constructor Details
80
81
82
83
84
85
|
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 80
def initialize(payload = {})
@handle = nil
@started = false
@payload = nil
@base_payload = payload
end
|
Instance Method Details
#finish(outcome) ⇒ Object
101
102
103
104
105
106
107
|
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 101
def finish(outcome)
raise InstrumentationNotStartedError.new("Called finish on a transaction that hasn't started") unless @started
@started = false
@payload[:outcome] = outcome
@handle.finish
end
|
90
91
92
93
94
95
96
97
98
99
|
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 90
def start
raise InstrumentationAlreadyStartedError.new("Called start on an already started transaction") if @started
@started = true
ActiveSupport::Notifications.instrument("start_transaction.active_record", @base_payload)
@payload = @base_payload.dup
@handle = ActiveSupport::Notifications.instrumenter.build_handle("transaction.active_record", @payload)
@handle.start
end
|