module AlgoliaSearch::InstanceMethods

these are the instance methods included

Public Class Methods

included(base) click to toggle source
# File lib/algoliasearch-rails.rb, line 978
def self.included(base)
  base.instance_eval do
    alias_method :index!, :algolia_index! unless method_defined? :index!
    alias_method :remove_from_index!, :algolia_remove_from_index! unless method_defined? :remove_from_index!
  end
end

Public Instance Methods

algolia_enqueue_index!(synchronous) click to toggle source
# File lib/algoliasearch-rails.rb, line 1001
def algolia_enqueue_index!(synchronous)
  if algoliasearch_options[:enqueue]
    algoliasearch_options[:enqueue].call(self, false) unless self.class.send(:algolia_indexing_disabled?, algoliasearch_options)
  else
    algolia_index!(synchronous)
  end
end
algolia_enqueue_remove_from_index!(synchronous) click to toggle source
# File lib/algoliasearch-rails.rb, line 993
def algolia_enqueue_remove_from_index!(synchronous)
  if algoliasearch_options[:enqueue]
    algoliasearch_options[:enqueue].call(self, true) unless self.class.send(:algolia_indexing_disabled?, algoliasearch_options)
  else
    algolia_remove_from_index!(synchronous || algolia_synchronous?)
  end
end
algolia_index!(synchronous = false) click to toggle source
# File lib/algoliasearch-rails.rb, line 985
def algolia_index!(synchronous = false)
  self.class.algolia_index!(self, synchronous || algolia_synchronous?)
end
algolia_remove_from_index!(synchronous = false) click to toggle source
# File lib/algoliasearch-rails.rb, line 989
def algolia_remove_from_index!(synchronous = false)
  self.class.algolia_remove_from_index!(self, synchronous || algolia_synchronous?)
end

Private Instance Methods

algolia_mark_for_auto_indexing() click to toggle source
# File lib/algoliasearch-rails.rb, line 1019
def algolia_mark_for_auto_indexing
  @algolia_auto_indexing = true
end
algolia_mark_must_reindex() click to toggle source
# File lib/algoliasearch-rails.rb, line 1023
def algolia_mark_must_reindex
  # algolia_must_reindex flag is reset after every commit as part. If we must reindex at any point in
  # a stransaction, keep flag set until it is explicitly unset
  @algolia_must_reindex ||=
   if defined?(::Sequel) && defined?(::Sequel::Model) && is_a?(Sequel::Model)
     new? || self.class.algolia_must_reindex?(self)
   else
     new_record? || self.class.algolia_must_reindex?(self)
   end
  true
end
algolia_mark_synchronous() click to toggle source
# File lib/algoliasearch-rails.rb, line 1015
def algolia_mark_synchronous
  @algolia_synchronous = true
end
algolia_perform_index_tasks() click to toggle source
# File lib/algoliasearch-rails.rb, line 1035
def algolia_perform_index_tasks
  return if !@algolia_auto_indexing || @algolia_must_reindex == false
  algolia_enqueue_index!(algolia_synchronous?)
  remove_instance_variable(:@algolia_auto_indexing) if instance_variable_defined?(:@algolia_auto_indexing)
  remove_instance_variable(:@algolia_synchronous) if instance_variable_defined?(:@algolia_synchronous)
  remove_instance_variable(:@algolia_must_reindex) if instance_variable_defined?(:@algolia_must_reindex)
end
algolia_synchronous?() click to toggle source
# File lib/algoliasearch-rails.rb, line 1011
def algolia_synchronous?
  @algolia_synchronous == true
end