Class: Elasticity::IndexConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/elasticity/index_config.rb

Constant Summary collapse

ATTRS =
[:index_base_name, :document_type, :mapping, :strategy].freeze

Instance Method Summary collapse

Constructor Details

#initialize(elasticity_config) {|_self| ... } ⇒ IndexConfig

Returns a new instance of IndexConfig.

Yields:

  • (_self)

Yield Parameters:



6
7
8
9
10
# File 'lib/elasticity/index_config.rb', line 6

def initialize(elasticity_config)
  @elasticity_config = elasticity_config
  yield(self)
  validate!
end

Instance Method Details

#clientObject



18
19
20
# File 'lib/elasticity/index_config.rb', line 18

def client
  @elasticity_config.client
end

#definitionObject



22
23
24
# File 'lib/elasticity/index_config.rb', line 22

def definition
  { settings: @elasticity_config.settings, mappings: { @document_type => @mapping } }
end

#fq_index_base_nameObject



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/elasticity/index_config.rb', line 26

def fq_index_base_name
  return @fq_index_base_name if defined?(@fq_index_base_name)

  if namespace = @elasticity_config.namespace
    @fq_index_base_name = "#{namespace}_#{@index_base_name}"
  else
    @fq_index_base_name = @index_base_name
  end

  @fq_index_base_name
end

#segment(name) ⇒ Object



12
13
14
15
16
# File 'lib/elasticity/index_config.rb', line 12

def segment(name)
  new_config = self.dup
  new_config.index_base_name = "#{index_base_name}_#{name.underscore}"
  new_config
end

#strategyObject



38
39
40
# File 'lib/elasticity/index_config.rb', line 38

def strategy
  @strategy ||= Strategies::SingleIndex
end