class ThinkingSphinx::RealTime::Callbacks::RealTimeCallbacks

Attributes

path[R]
reference[R]

Public Class Methods

new(reference, path = []) click to toggle source
# File lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb, line 2
def initialize(reference, path = [])
  @reference, @path = reference, path
end

Public Instance Methods

after_save(instance) click to toggle source
# File lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb, line 6
def after_save(instance)
  return unless real_time_indices?

  real_time_indices.each do |index|
    objects_for(instance).each do |object|
      ThinkingSphinx::RealTime::Transcriber.new(index).copy object
    end
  end
end

Private Instance Methods

configuration() click to toggle source
# File lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb, line 20
def configuration
  ThinkingSphinx::Configuration.instance
end
indices() click to toggle source
# File lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb, line 24
def indices
  @indices ||= configuration.indices_for_references reference
end
objects_for(instance) click to toggle source
# File lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb, line 28
def objects_for(instance)
  Array(path.inject(instance) { |object, method| object.send method })
end
real_time_indices() click to toggle source
# File lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb, line 36
def real_time_indices
  @real_time_indices ||= indices.select { |index|
    index.is_a? ThinkingSphinx::RealTime::Index
  }
end
real_time_indices?() click to toggle source
# File lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb, line 32
def real_time_indices?
  real_time_indices.any?
end