class ThinkingSphinx::RealTime::Transcriber
Attributes
index[R]
Public Class Methods
new(index)
click to toggle source
# File lib/thinking_sphinx/real_time/transcriber.rb, line 2 def initialize(index) @index = index end
Public Instance Methods
copy(*instances)
click to toggle source
# File lib/thinking_sphinx/real_time/transcriber.rb, line 6 def copy(*instances) items = instances.select { |instance| instance.persisted? && copy?(instance) } return unless items.present? values = items.collect { |instance| TranscribeInstance.call(instance, index, properties) } insert = Riddle::Query::Insert.new index.name, columns, values sphinxql = insert.replace!.to_sql ThinkingSphinx::Logger.log :query, sphinxql do ThinkingSphinx::Connection.take do |connection| connection.execute sphinxql end end end
Private Instance Methods
columns()
click to toggle source
# File lib/thinking_sphinx/real_time/transcriber.rb, line 54 def columns @columns ||= properties.each_with_object(['id']) do |property, columns| columns << property.name end end
copy?(instance)
click to toggle source
# File lib/thinking_sphinx/real_time/transcriber.rb, line 60 def copy?(instance) index.conditions.empty? || index.conditions.all? { |condition| case condition when Symbol instance.send(condition) when Proc condition.call instance else "Unexpected condition: #{condition}. Expecting Symbol or Proc." end } end
properties()
click to toggle source
# File lib/thinking_sphinx/real_time/transcriber.rb, line 73 def properties @properties ||= index.fields + index.attributes end