module Schemaless::Indexes::ClassMethods

Schemaless ActiveRecord indexes

Public Instance Methods

current_indexes() click to toggle source

Get all indexes in a schemaless way

# File lib/schemaless/ar/indexes.rb, line 38
def current_indexes
  ::ActiveRecord::Base.connection.indexes(table_name).map do |i|
    opts = ::Schemaless::Index::VALID_OPTS.reduce({}) do |a, e|
      i.send(e) ? a.merge(e => i.send(e)) : a
    end
    ::Schemaless::Index.new(i.columns, i.name, opts)
  end
end
index(*params) click to toggle source

index(*)

index :name
index [:one, :other]
index :name, unique: true
# File lib/schemaless/ar/indexes.rb, line 28
def index(*params)
  config = params.extract_options!
  name = config.delete(:name)
  schemaless_indexes <<
    ::Schemaless::Index.new(params, name, config)
end
schemaless_indexes() click to toggle source

Holder for all fields dynamic

# File lib/schemaless/ar/indexes.rb, line 16
def schemaless_indexes
  @schemaless_indexes ||= []
end