Sha256: c0f6fb3ff090851a9a5f61bdbd89147726f1adf151bc66e94d00bc0dae1edc03
Contents?: true
Size: 1.07 KB
Versions: 1
Compression:
Stored size: 1.07 KB
Contents
require 'active_support/concern' require 'active_support/core_ext/hash/keys' module Schemaless # # Extend ActiveRecord for #index # module Indexes extend ActiveSupport::Concern # Schemaless ActiveRecord indexes module ClassMethods def schemaless_indexes @schemaless_indexes ||= [] end # # index(*) # # index :name # index [:one, :other] # index :name, unique: true # # def index(*params) config = params.extract_options! name = config.delete(:name) schemaless_indexes << ::Schemaless::Index.new(params, name, config) end # # Get all indexes in a schemaless way # 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 end end # ActiveRecord end # Schemaless
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
schemaless-0.0.3 | lib/schemaless/ar/indexes.rb |