class PgShrink::SubTableOperator
Attributes
database[RW]
parent[RW]
table_name[RW]
Public Class Methods
new(parent, table_name, opts = {})
click to toggle source
# File lib/pg_shrink/sub_table_operator.rb, line 20 def initialize(parent, table_name, opts = {}) self.parent = parent self.table_name = table_name self.database = parent.database @opts = default_opts.merge(opts) validate_opts!(@opts) end
Public Instance Methods
default_opts()
click to toggle source
# File lib/pg_shrink/sub_table_operator.rb, line 4 def default_opts { :foreign_key => "#{ActiveSupport::Inflector.singularize(parent.table_name.to_s)}_id", :primary_key => :id } end
name()
click to toggle source
# File lib/pg_shrink/sub_table_operator.rb, line 12 def name "#{table_name} #{self.class.name.demodulize} from #{parent.table_name}" end
propagate!(old_parent_data, new_parent_data)
click to toggle source
# File lib/pg_shrink/sub_table_operator.rb, line 31 def propagate!(old_parent_data, new_parent_data) raise "Implement in subclass" end
table()
click to toggle source
# File lib/pg_shrink/sub_table_operator.rb, line 16 def table database.table(table_name) end
validate_opts!(opts)
click to toggle source
# File lib/pg_shrink/sub_table_operator.rb, line 29 def validate_opts!(opts); end