Class: DatabaseLeakFinder::Finder

Inherits:
Object
  • Object
show all
Defined in:
lib/database_leak_finder/finder.rb

Constant Summary collapse

IGNORED_SYSTEM_TABLES =
['ar_internal_metadata', 'schema_migrations', 'pg_stat_statements']

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Finder

Returns a new instance of Finder.



5
6
7
# File 'lib/database_leak_finder/finder.rb', line 5

def initialize(options)
  @ignored_tables = (options[:ignored_tables] || []).map(&:to_s) + IGNORED_SYSTEM_TABLES
end

Instance Method Details

#processObject



9
10
11
12
13
14
15
16
# File 'lib/database_leak_finder/finder.rb', line 9

def process
  return [] unless ActiveRecord::Base.connected?
  filtered_tables.each_with_object({}) do |table, result|
    amount = count_for(table)
    result[table] = amount unless amount.zero?
    result
  end
end