class Elasticfusion::Model::Settings

Public Class Methods

new(model, &block) click to toggle source
# File lib/elasticfusion/model/settings.rb, line 7
def initialize(model, &block)
  @model = model

  @settings = DSL.build_settings(&block) if block_given?
  @settings ||= {}

  @settings[:searchable_mapping] = searchable_mapping
  @settings[:searchable_fields] ||= @settings[:searchable_mapping].keys
end

Public Instance Methods

searchable_mapping() click to toggle source
# File lib/elasticfusion/model/settings.rb, line 17
def searchable_mapping
  mapping = @model.__elasticsearch__.mapping.to_hash[
    @model.__elasticsearch__.document_type.to_sym][:properties]

  if @settings[:searchable_fields]
    mapping.select { |field, _| @settings[:searchable_fields].include? field }
  else
    mapping
  end
end