Module: ArCache::ActiveRecord::ConnectionAdapters::DatabaseStatements
- Defined in:
- lib/ar_cache/active_record/connection_adapters/abstract/database_statements.rb
Instance Method Summary collapse
- #delete(arel) ⇒ Object
- #truncate(table_name) ⇒ Object
- #truncate_tables(*table_names) ⇒ Object
-
#update(arel) ⇒ Object
def insert(arel, …) super.tap do if arel.is_a?(String) sql = arel.downcase ArCache::Table.all.each do |table| current_transaction.add_changed_table(table.name) if sql.include?(table.name) end else # is Arel::InsertManager klass = arel.ast.relation.instance_variable_get(:@klass) current_transaction.add_changed_table(klass.table_name) end end end alias create insert.
Instance Method Details
#delete(arel) ⇒ Object
26 27 28 |
# File 'lib/ar_cache/active_record/connection_adapters/abstract/database_statements.rb', line 26 def delete(arel, ...) super.tap { |num| update_ar_cache(arel) unless num.zero? } end |
#truncate(table_name) ⇒ Object
30 31 32 |
# File 'lib/ar_cache/active_record/connection_adapters/abstract/database_statements.rb', line 30 def truncate(table_name, ...) super.tap { update_ar_cache_by_table(table_name) } end |
#truncate_tables(*table_names) ⇒ Object
34 35 36 37 38 |
# File 'lib/ar_cache/active_record/connection_adapters/abstract/database_statements.rb', line 34 def truncate_tables(*table_names) super.tap do table_names.each { |table_name| update_ar_cache_by_table(table_name) } end end |
#update(arel) ⇒ Object
def insert(arel, …)
super.tap do
if arel.is_a?(String)
sql = arel.downcase
ArCache::Table.all.each do |table|
current_transaction.add_changed_table(table.name) if sql.include?(table.name)
end
else # is Arel::InsertManager
klass = arel.ast.relation.instance_variable_get(:@klass)
current_transaction.add_changed_table(klass.table_name)
end
end
end alias create insert
22 23 24 |
# File 'lib/ar_cache/active_record/connection_adapters/abstract/database_statements.rb', line 22 def update(arel, ...) super.tap { |num| update_ar_cache(arel) unless num.zero? } end |