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
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