Module: Isolator::ActiveSupportSubscriber

Defined in:
lib/isolator/orm_adapters/active_support_subscriber.rb

Overview

ActiveSupport notifications listener Used for ActiveRecord and ROM::SQL (when instrumentation is available)

Constant Summary collapse

START_PATTERN =
%r{(\ABEGIN|\ASAVEPOINT)}xi
FINISH_PATTERN =
%r{(\ACOMMIT|\AROLLBACK|\ARELEASE|\AEND TRANSACTION)}xi

Class Method Summary collapse

Class Method Details

.subscribe!(event) ⇒ Object



10
11
12
13
14
15
# File 'lib/isolator/orm_adapters/active_support_subscriber.rb', line 10

def self.subscribe!(event)
  ::ActiveSupport::Notifications.subscribe(event) do |_name, _start, _finish, _id, query|
    Isolator.incr_transactions! if query[:sql] =~ START_PATTERN
    Isolator.decr_transactions! if query[:sql] =~ FINISH_PATTERN
  end
end