Class: CouchbaseOrm::IndexSchema::DSL

Inherits:
Object
  • Object
show all
Defined in:
lib/couchbase-orm/index_schema.rb

Instance Method Summary collapse

Constructor Details

#initialize(indexes) ⇒ DSL

Returns a new instance of DSL.



9
10
11
# File 'lib/couchbase-orm/index_schema.rb', line 9

def initialize(indexes)
  @indexes = indexes
end

Instance Method Details

#add_index(name, keys:, where: nil, num_replica: nil, defer_build: false) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/couchbase-orm/index_schema.rb', line 13

def add_index(name, keys:, where: nil, num_replica: nil, defer_build: false)
  index_definition = CouchbaseOrm::IndexDefinition.new(
    name: name,
    keys: keys,
    where: where,
    defer_build: defer_build,
    num_replica: num_replica
  )
  @indexes[index_definition.name] = index_definition
end

#remove_index(name) ⇒ Object



24
25
26
# File 'lib/couchbase-orm/index_schema.rb', line 24

def remove_index(name)
  @indexes.delete(CouchbaseOrm::IndexDefinition.normalize_name(name))
end

#rename_index(old_name, new_name) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/couchbase-orm/index_schema.rb', line 28

def rename_index(old_name, new_name)
  index_definition = @indexes.delete(CouchbaseOrm::IndexDefinition.normalize_name(old_name))
  return unless index_definition

  renamed_index = CouchbaseOrm::IndexDefinition.new(
    name: new_name,
    keys: index_definition.keys,
    where: index_definition.where,
    defer_build: index_definition.defer_build,
    num_replica: index_definition.num_replica
  )
  @indexes[renamed_index.name] = renamed_index
end