class ThinkingSphinx::ActiveRecord::Callbacks::DeltaCallbacks

Public Instance Methods

after_commit() click to toggle source
# File lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb, line 8
def after_commit
  return unless !suspended? && delta_indices? && toggled?

  delta_indices.each do |index|
    index.delta_processor.index index
  end

  core_indices.each do |index|
    index.delta_processor.delete index, instance
  end
end
before_save() click to toggle source
# File lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb, line 20
def before_save
  return unless !ThinkingSphinx::Callbacks.suspended? && delta_indices? &&
    new_or_changed?

  processors.each { |processor| processor.toggle instance }
end

Private Instance Methods

config() click to toggle source
# File lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb, line 29
def config
  ThinkingSphinx::Configuration.instance
end
core_indices() click to toggle source
# File lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb, line 33
def core_indices
  @core_indices ||= indices.select(&:delta_processor).reject(&:delta?)
end
delta_indices() click to toggle source
# File lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb, line 37
def delta_indices
  @delta_indices ||= indices.select &:delta?
end
delta_indices?() click to toggle source
# File lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb, line 41
def delta_indices?
  delta_indices.any?
end
indices() click to toggle source
# File lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb, line 45
def indices
  @indices ||= config.index_set_class.new(
    :instances => [instance], :classes => [instance.class]
  ).select { |index| index.type == "plain" }
end
new_or_changed?() click to toggle source
# File lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb, line 51
def new_or_changed?
  instance.new_record? || instance.changed?
end
processors() click to toggle source
# File lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb, line 55
def processors
  delta_indices.collect &:delta_processor
end
suspended?() click to toggle source
# File lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb, line 59
def suspended?
  ThinkingSphinx::Callbacks.suspended? || ThinkingSphinx::Deltas.suspended?
end
toggled?() click to toggle source
# File lib/thinking_sphinx/active_record/callbacks/delta_callbacks.rb, line 63
def toggled?
  processors.any? { |processor| processor.toggled?(instance) }
end