class Schemaless::Index
Stores indexes
Constants
- VALID_OPTS
Attributes
fields[RW]
name[RW]
opts[RW]
Public Class Methods
new(fields, name = nil, opts = {})
click to toggle source
# File lib/schemaless/index.rb, line 9 def initialize(fields, name = nil, opts = {}) @fields = [fields].flatten @fields = @fields.first if @fields.size == 1 @name = name || opts[:name] @opts = opts.select { |_k, v| v.present? } @opts.merge!(name: @name) if @name end
Public Instance Methods
==(other)
click to toggle source
# File lib/schemaless/index.rb, line 30 def ==(other) name == other.name end
add!(table)
click to toggle source
Add Indexes
# File lib/schemaless/index.rb, line 37 def add!(table) return if Schemaless.sandbox ::ActiveRecord::Migration.add_index(table.name, fields, opts) end
change!(table)
click to toggle source
Change Indexes
# File lib/schemaless/index.rb, line 54 def change!(table) return if Schemaless.sandbox ::ActiveRecord::Migration.change_index(table.name, name, type, opts) end
fields_text()
click to toggle source
# File lib/schemaless/index.rb, line 22 def fields_text @fields.inspect end
opts_text()
click to toggle source
# File lib/schemaless/index.rb, line 17 def opts_text txt = opts.map { |k, v| "#{k}: #{v}" }.join(', ') txt.empty? ? '' : ", #{txt}" end
remove!(table)
click to toggle source
Delete Indexes
# File lib/schemaless/index.rb, line 45 def remove!(table) return if Schemaless.sandbox key = name ? { name: name } : { column: fields } ::ActiveRecord::Migration.remove_index(table.name, key) end
to_s()
click to toggle source
# File lib/schemaless/index.rb, line 26 def to_s name end