Module: MemoryModel::Collection::Initializers
- Extended by:
- ActiveSupport::Concern
- Included in:
- MemoryModel::Collection
- Defined in:
- lib/memory_model/collection/initializers.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #add_index(name, options = {}) ⇒ Object
- #index_names ⇒ Object
- #indexes ⇒ Object
- #initialize(model) ⇒ Object
- #set_primary_key(key, options = {}) ⇒ Object
Instance Method Details
#add_index(name, options = {}) ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/memory_model/collection/initializers.rb', line 11 def add_index(name, ={}) type = :unique if .delete(:unique) type ||= .delete(:type) || :multi indexes[name] = Index.const_get(type.to_s.camelize).new(name, ) rescue NameError => e raise TypeError, "#{type.inspect} is not a valid index" end |
#index_names ⇒ Object
23 24 25 |
# File 'lib/memory_model/collection/initializers.rb', line 23 def index_names indexes.keys end |
#indexes ⇒ Object
19 20 21 |
# File 'lib/memory_model/collection/initializers.rb', line 19 def indexes @indexes ||= {} end |
#initialize(model) ⇒ Object
6 7 8 9 |
# File 'lib/memory_model/collection/initializers.rb', line 6 def initialize(model) @model = model set_primary_key :_uuid_, default: nil end |
#set_primary_key(key, options = {}) ⇒ Object
27 28 29 30 31 32 33 34 35 |
# File 'lib/memory_model/collection/initializers.rb', line 27 def set_primary_key(key, ={}) if [:auto_increment] != false && !.has_key?(:default) [:auto_increment] = true end [:comparable] ||= false @model.field key, add_index key, type: :unique @primary_key = key end |