Module: TableRenamable::Model

Extended by:
ActiveSupport::Concern
Defined in:
lib/table_renamable/model.rb

Overview

Model that is included in ActiveRecord to enable our behavior

Author:

  • dlangevin

Defined Under Namespace

Modules: ClassMethods Classes: NoTableError

Class Method Summary collapse

Class Method Details

.deprecated_tablesArray<DeprecatedTable>

Return our list of deprecated tables

Returns:



24
25
26
# File 'lib/table_renamable/model.rb', line 24

def self.deprecated_tables
  @deprecated_tables ||= []
end

.process_sql(sql) ⇒ String

Update a string of SQL to replace deprecated tables

Parameters:

  • sql (String)

    SQL TO update

Returns:

  • (String)

    Updated SQL



33
34
35
36
37
38
39
40
41
# File 'lib/table_renamable/model.rb', line 33

def self.process_sql(sql)
  self.deprecated_tables.each do |deprecated_table|
    # our current table name
    current_table_name = deprecated_table.get_current_table_name
    old_table_name = deprecated_table.old_name
    sql = sql.gsub(/#{old_table_name}/, current_table_name.to_s)
  end
  sql
end

.reload_tablesBoolean

Reload our table names so we pick up any changes

Returns:

  • (Boolean)

    Always true



47
48
49
50
# File 'lib/table_renamable/model.rb', line 47

def self.reload_tables
  self.deprecated_tables.each(&:set_table_name)
  true
end