Module: ArCache::ActiveRecord::ConnectionAdapters::DatabaseStatements

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

Instance Method Summary collapse

Instance Method Details

#delete(arel) ⇒ Object



31
32
33
# File 'lib/ar_cache/active_record/connection_adapters/abstract/database_statements.rb', line 31

def delete(arel, ...)
  super.tap { |num| update_ar_cache(arel) unless num.zero? }
end

#select_all(arel) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/ar_cache/active_record/connection_adapters/abstract/database_statements.rb', line 7

def select_all(arel, ...)
  result = super
  klass, select_values = arel.try(:klass_and_select_values)
  return result if klass.nil?

  klass.ar_cache_table.write(result.to_a)

  if select_values
    result.to_a.each { |r| r.slice!(*select_values) }
  elsif klass.ignored_columns.any?
    result.to_a.each { |r| r.except!(*klass.ignored_columns) }
  end

  result
end

#truncate(table_name) ⇒ Object



35
36
37
# File 'lib/ar_cache/active_record/connection_adapters/abstract/database_statements.rb', line 35

def truncate(table_name, ...)
  super.tap { update_ar_cache_by_table(table_name) }
end

#truncate_tables(*table_names) ⇒ Object



39
40
41
42
43
# File 'lib/ar_cache/active_record/connection_adapters/abstract/database_statements.rb', line 39

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, …) end alias create insert



27
28
29
# File 'lib/ar_cache/active_record/connection_adapters/abstract/database_statements.rb', line 27

def update(arel, ...)
  super.tap { |num| update_ar_cache(arel) unless num.zero? }
end