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