Class: Noiseless::MappingDefinitionProcessor

Inherits:
Object
  • Object
show all
Defined in:
lib/noiseless/mapping_definition_processor.rb

Defined Under Namespace

Classes: AnalysisBuilder, AnalyzerBuilder, AnalyzerDefinitions, IndexSettingsBuilder, NormalizerBuilder, NormalizerDefinitions, PropertiesBuilder, SettingsBuilder

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMappingDefinitionProcessor

Returns a new instance of MappingDefinitionProcessor.



13
14
15
16
# File 'lib/noiseless/mapping_definition_processor.rb', line 13

def initialize
  @settings = {}
  @properties = {}
end

Class Method Details

.process(mapping_block) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/noiseless/mapping_definition_processor.rb', line 5

def self.process(mapping_block)
  return {} unless mapping_block

  processor = new
  processor.instance_eval(&mapping_block)
  processor.to_index_config
end

Instance Method Details

#analysisObject

Delegate to settings builder for nested methods



31
32
33
# File 'lib/noiseless/mapping_definition_processor.rb', line 31

def analysis(&)
  settings { analysis(&) }
end

#propertiesObject



24
25
26
27
28
# File 'lib/noiseless/mapping_definition_processor.rb', line 24

def properties(&)
  properties_builder = PropertiesBuilder.new
  properties_builder.instance_eval(&)
  @properties = properties_builder.to_hash
end

#settingsObject



18
19
20
21
22
# File 'lib/noiseless/mapping_definition_processor.rb', line 18

def settings(&)
  settings_builder = SettingsBuilder.new
  settings_builder.instance_eval(&)
  @settings = settings_builder.to_hash
end

#to_index_configObject



35
36
37
38
39
40
# File 'lib/noiseless/mapping_definition_processor.rb', line 35

def to_index_config
  config = {}
  config[:settings] = @settings unless @settings.empty?
  config[:mappings] = { properties: @properties } unless @properties.empty?
  config
end