class DBPurger::Plan
DBPurger::Plan
is used to describe the relationship between tables
Attributes
base_table[RW]
child_tables[R]
ignore_tables[R]
parent_tables[R]
search_tables[R]
Public Class Methods
new()
click to toggle source
# File lib/db-purger/plan.rb, line 13 def initialize @parent_tables = [] @child_tables = [] @ignore_tables = [] @search_tables = [] end
Public Instance Methods
empty?()
click to toggle source
# File lib/db-purger/plan.rb, line 46 def empty? @base_table.nil? && @parent_tables.empty? && @child_tables.empty? && @search_tables.empty? end
foreign_tables()
click to toggle source
# File lib/db-purger/plan.rb, line 35 def foreign_tables (@base_table ? [@base_table] : []) + @parent_tables + @child_tables + @search_tables end
ignore_table?(table_name)
click to toggle source
# File lib/db-purger/plan.rb, line 53 def ignore_table?(table_name) @ignore_tables.any? do |ignore_table_name| if ignore_table_name.is_a?(Regexp) ignore_table_name.match(table_name) else ignore_table_name.to_s == table_name end end end
purge!(database, purge_value)
click to toggle source
# File lib/db-purger/plan.rb, line 20 def purge!(database, purge_value) MetricSubscriber.reset! PurgeTable.new(database, @base_table, @base_table.field, purge_value).purge! end
table_names()
click to toggle source
# File lib/db-purger/plan.rb, line 42 def table_names tables.map(&:name) end
tables()
click to toggle source
# File lib/db-purger/plan.rb, line 25 def tables all_tables = @base_table ? [@base_table] + @base_table.tables : [] all_tables += @parent_tables + @parent_tables.map(&:tables) + @child_tables + @child_tables.map(&:tables) + @search_tables + @search_tables.map(&:tables) all_tables.flatten! all_tables.compact! all_tables end