Module: ArCache::ActiveRecord::ConnectionAdapters::TransactionManager

Defined in:
lib/ar_cache/active_record/connection_adapters/abstract/transaction.rb

Instance Method Summary collapse

Instance Method Details

#add_transaction_table(table_name) ⇒ Object



75
76
77
# File 'lib/ar_cache/active_record/connection_adapters/abstract/transaction.rb', line 75

def add_transaction_table(table_name)
  @transaction_tables[table_name] = true if fully_joinable? && @stack.any?
end

#fully_joinable?Boolean



83
84
85
# File 'lib/ar_cache/active_record/connection_adapters/abstract/transaction.rb', line 83

def fully_joinable?
  @stack.all?(&:joinable?)
end

#initializeObject



70
71
72
73
# File 'lib/ar_cache/active_record/connection_adapters/abstract/transaction.rb', line 70

def initialize(...)
  super
  @transaction_tables = {}
end

#transaction_table?(table_name) ⇒ Boolean



79
80
81
# File 'lib/ar_cache/active_record/connection_adapters/abstract/transaction.rb', line 79

def transaction_table?(table_name)
  @transaction_tables.key?(table_name)
end

#within_new_transactionObject



87
88
89
90
91
# File 'lib/ar_cache/active_record/connection_adapters/abstract/transaction.rb', line 87

def within_new_transaction(...)
  super
ensure
  @transaction_tables.clear if @stack.count(&:joinable?).zero?
end