lib/elasticity/index_config.rb in es-elasticity-0.8.4 vs lib/elasticity/index_config.rb in es-elasticity-0.9.0

- old
+ new

@@ -1,8 +1,11 @@ module Elasticity class IndexConfig - ATTRS = [:index_base_name, :document_type, :mapping, :strategy, :subclasses].freeze + ATTRS = [ + :index_base_name, :document_type, :mapping, :strategy, :subclasses, + :settings + ].freeze VALIDATABLE_ATTRS = [:index_base_name, :document_type, :strategy].freeze attr_accessor *ATTRS def initialize(elasticity_config, defaults = {}) @@ -24,11 +27,13 @@ @elasticity_config.client end def definition return @definition if defined?(@definition) - @definition = { settings: @elasticity_config.settings, mappings: { @document_type => @mapping || {} } } + @definition = { + settings: merge_settings, mappings: { @document_type => @mapping || {} } + } subclasses.each do |doc_type, subclass| @definition[:mappings][doc_type] = subclass.constantize.mapping end if subclasses.present? @definition end @@ -57,8 +62,12 @@ def validate! VALIDATABLE_ATTRS.each do |attr| raise "#{attr} is not set" if public_send(attr).nil? end + end + + def merge_settings + @elasticity_config.settings.merge(settings || {}) end end end