module Elasticsearch::Model::Globalize::OneIndexPerLanguage::ClassMethods

Public Instance Methods

document_type(name=nil) click to toggle source
# File lib/elasticsearch/model/globalize/one_index_per_language.rb, line 69
def document_type name=nil
  @document_type = name if name
  @document_type || document_types[::Globalize.locale] ||=
    ::Elasticsearch::Model::Globalize::OneIndexPerLanguage.localized_name(document_type_base, ::Globalize.locale)
end
document_type_base(name=nil) click to toggle source
# File lib/elasticsearch/model/globalize/one_index_per_language.rb, line 49
def document_type_base name=nil
  @document_type_base = name and document_types.clear if name
  @document_type_base || self.model_name.element
end
document_type_base=(name) click to toggle source
# File lib/elasticsearch/model/globalize/one_index_per_language.rb, line 54
def document_type_base=(name)
  document_types.clear
  @document_type_base = name
end
document_types() click to toggle source
# File lib/elasticsearch/model/globalize/one_index_per_language.rb, line 75
def document_types
  @document_types ||= {}
end
globalized_mapping(options={}, &block) click to toggle source
# File lib/elasticsearch/model/globalize/one_index_per_language.rb, line 79
          def globalized_mapping(options={}, &block)
            unless @globalized_mapping
              @globalized_mapping = ActiveSupport::HashWithIndifferentAccess.new
              target.__elasticsearch__.class_eval <<-RUBY, __FILE__, __LINE__ + 1
              def mapping
                @globalized_mapping[::Globalize.locale]
              end
              alias :mappings :mapping
              RUBY
            end
            I18n.available_locales.each do |locale|
              @globalized_mapping[locale] ||= ::Elasticsearch::Model::Indexing::Mappings.new(
                ::Elasticsearch::Model::Globalize::OneIndexPerLanguage.localized_name(document_type_base, locale), options)

              if block_given?
                @globalized_mapping[locale].options.update(options)

                @globalized_mapping[locale].instance_exec(locale, &block)
              end
            end
            @globalized_mapping
          end
Also aliased as: globalized_mappings
globalized_mappings(options={}, &block)
Alias for: globalized_mapping
import(options={}, &block) click to toggle source
Calls superclass method
# File lib/elasticsearch/model/globalize/one_index_per_language.rb, line 103
def import(options={}, &block)
  current_locale_only = options.delete(:current_locale_only)
  if current_locale_only
    super(options, &block)
  else
    errors = Hash.new
    I18n.available_locales.each do |locale|
      super_options = options.clone
      ::Globalize.with_locale(locale) do
        errors[locale] = super(super_options, &block)
      end
    end
    self.find_each do |record|
      (I18n.available_locales - record.translations.pluck(:locale).map(&:to_sym)).each do |locale|
        ::Globalize.with_locale(locale) do
          record.__elasticsearch__.delete_document(current_locale_only: true)
        end
      end
    end
    errors
  end
end
index_name(name=nil) click to toggle source
# File lib/elasticsearch/model/globalize/one_index_per_language.rb, line 59
def index_name name=nil
  @index_name = name if name
  @index_name || index_names[::Globalize.locale] ||=
    ::Elasticsearch::Model::Globalize::OneIndexPerLanguage.localized_name(index_name_base, ::Globalize.locale)
end
index_name_base(name=nil) click to toggle source
# File lib/elasticsearch/model/globalize/one_index_per_language.rb, line 39
def index_name_base name=nil
  @index_name_base = name and index_names.clear if name
  @index_name_base || self.model_name.collection.gsub(/\//, '-')
end
index_name_base=(name) click to toggle source
# File lib/elasticsearch/model/globalize/one_index_per_language.rb, line 44
def index_name_base=(name)
  index_names.clear
  @index_name_base = name
end
index_names() click to toggle source
# File lib/elasticsearch/model/globalize/one_index_per_language.rb, line 65
def index_names
  @index_names ||= {}
end