# File lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb, line 2 def initialize(reference, path = []) @reference, @path = reference, path end
# 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
# File lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb, line 20 def configuration ThinkingSphinx::Configuration.instance end
# File lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb, line 24 def indices @indices ||= configuration.indices_for_references reference end
# 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
# 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
# File lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb, line 32 def real_time_indices? real_time_indices.any? end