Module: SchemaPlusPgIndexes::Middleware::Postgresql::Dumper::Indexes

Defined in:
lib/schema_plus_pg_indexes/middleware/postgresql/dumper.rb

Instance Method Summary collapse

Instance Method Details

#after(env) ⇒ Object

Dump index extensions



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/schema_plus_pg_indexes/middleware/postgresql/dumper.rb', line 9

def after(env)
  index_defs = Dumper.get_index_defiinitions(env, env.table)

  env.table.indexes.each do |index_dump|
    index_def = index_defs.find(&its.name == index_dump.name)
    if index_def.columns.blank?
      index_dump.add_option "expression: #{index_def.expression.inspect}" if index_def.expression and index_def.columns.blank?
    else
      index_dump.add_option "case_sensitive: false" unless index_def.case_sensitive?
      unless index_def.operator_classes.blank?
        if index_def.operator_classes.values.uniq.length == 1
          index_dump.add_option "operator_class: #{index_def.operator_classes.values.first.inspect}"
        else
          index_dump.add_option "operator_class: {" + index_def.operator_classes.map{|column, val| "#{column.inspect}=>#{val.inspect}"}.join(", ") + "}"
        end
      end
    end
  end
end