class Supple::Config

Public Class Methods

new(model) click to toggle source
# File lib/supple/model.rb, line 67
def initialize(model)
  @model = model

  @index_name_method = Supple.config.index.default_index_name
  @document_type_method = Supple.config.index.default_document_type
end

Public Instance Methods

client() click to toggle source
# File lib/supple/model.rb, line 64
def client
  Supple.client
end
document_type(&block) click to toggle source
# File lib/supple/model.rb, line 79
def document_type(&block)
  @document_type_method = block if block_given?
  @document_type ||= @document_type_method.call(@model)
end
index_name(&block) click to toggle source
# File lib/supple/model.rb, line 74
def index_name(&block)
  @index_name_method = block if block_given?
  @index_name ||= @index_name_method.call(@model)
end
index_scope() click to toggle source
# File lib/supple/model.rb, line 90
def index_scope
  @model.all
end
mappings(&block) click to toggle source
# File lib/supple/model.rb, line 84
def mappings(&block)
  @mappings ||= {}
  @mappings = DSL::Mapping.new(&block).to_hash if block_given?
  @mappings
end
reindex() click to toggle source
# File lib/supple/model.rb, line 101
def reindex
  alias_name = index_name
  new_index_name = alias_name + "_" + Time.now.strftime("%Y%m%d%H%M%S%L")

  document_mappings = {}
  document_mappings[document_type] = mappings
  client.indices.create index: new_index_name,
    body: {
      settings: settings,
      mappings: document_mappings
    }

  if client.indices.exists_alias(name: alias_name)
    existing_alias = client.indices.get_alias(name: alias_name)
    Importer.new(index_scope, new_index_name, document_type).execute!
    client.indices.delete index: existing_alias.keys
    client.indices.put_alias index: new_index_name, name: alias_name
  else
    client.indices.put_alias index: new_index_name, name: alias_name
    Importer.new(index_scope, new_index_name, document_type).execute!
  end

end
settings(data = {}) click to toggle source
# File lib/supple/model.rb, line 94
def settings(data = {})
  @settings ||= {}
  @settings.merge! data
  @settings
end