module SwitchSearchable::SearchEngine::Algolia::ClassMethods
Public Instance Methods
init_search_engine(*names)
click to toggle source
# File lib/switch_searchable/search_engine/algolia.rb, line 35 def init_search_engine(*names) algoliasearch index_name: "#{self.to_s}_#{ENV["ALGOLIA_ENVIRONMENT"]}" do names.flatten.each do |name| if name.is_a? Symbol attribute(name) elsif name.is_a? Hash name.keys.each do |key| array = name[key] raise( BadDataType, "searchable_attributes associations can only have Array" ) unless array.is_a? Array attribute(key) do value = send(key) unless value.blank? if value.respond_to? :to_a value.map do |v| array.inject({}) do |hash, element| raise( BadDataType, "searchable_attributes associations attributes can only have Symbol" ) unless array.is_a? Array hash[element] = v.send(element) end end else array.inject({}) do |hash, element| raise( BadDataType, "searchable_attributes associations attributes can only have Symbol" ) unless array.is_a? Array hash[element] = value.send(element) end end end end end else raise( BadDataType, "searchable_attributes can only be either a Symbol or an Array" ) end end searchable_attrs = names.flatten.map do |name| if name.is_a? Hash name.keys else name end end.flatten searchableAttributes(searchable_attrs) end end
reindex_search_engine!()
click to toggle source
# File lib/switch_searchable/search_engine/algolia.rb, line 102 def reindex_search_engine! algolia_reindex! end
search(term)
click to toggle source
# File lib/switch_searchable/search_engine/algolia.rb, line 98 def search(term) algolia_search(term) end