Module: SchemaMonkey::ActiveRecord::ConnectionAdapters::SchemaStatements

Defined in:
lib/schema_monkey/active_record/connection_adapters/schema_statements.rb

Defined Under Namespace

Modules: Column, Index, Reference

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object

The hooks at the top level of this module are for the base class, which are not overriden by any specific adapters in AR.



10
11
12
13
14
# File 'lib/schema_monkey/active_record/connection_adapters/schema_statements.rb', line 10

def self.included(base)
  base.class_eval do
    alias_method_chain :add_index_options, :schema_monkey
  end
end

Instance Method Details

#add_index_options_with_schema_monkey(table_name, column_names, options = {}) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/schema_monkey/active_record/connection_adapters/schema_statements.rb', line 16

def add_index_options_with_schema_monkey(table_name, column_names, options={})
  cache = []
  Middleware::Migration::IndexComponentsSql.start connection: self, table_name: table_name, column_names: Array.wrap(column_names), options: options.deep_dup do |env|
    cache << env
    env.sql.name, env.sql.type, env.sql.columns, env.sql.options, env.sql.algorithm, env.sql.using = add_index_options_without_schema_monkey(env.table_name, env.column_names, env.options)
  end
  env = cache[0]
  [env.sql.name, env.sql.type, env.sql.columns, env.sql.options, env.sql.algorithm, env.sql.using]
end