class ThinkingSphinx::Deltas::DefaultDelta

Attributes

column[RW]

Public Class Methods

new(index, options) click to toggle source
# File lib/thinking_sphinx/deltas/default_delta.rb, line 6
def initialize(index, options)
  @index  = index
  @column = options.delete(:delta_column) || :delta
end

Public Instance Methods

clause(model, toggled) click to toggle source
# File lib/thinking_sphinx/deltas/default_delta.rb, line 36
def clause(model, toggled)
  "#{model.quoted_table_name}.#{model.connection.quote_column_name(@column.to_s)}" +
  " = #{adapter.boolean(toggled)}"
end
index(model, instance = nil) click to toggle source
# File lib/thinking_sphinx/deltas/default_delta.rb, line 11
def index(model, instance = nil)
  return true unless ThinkingSphinx.updates_enabled? &&
    ThinkingSphinx.deltas_enabled?
  return true if instance && !toggled(instance)
  
  update_delta_indexes model
  delete_from_core     model, instance if instance
  
  true
end
reset_query(model) click to toggle source
# File lib/thinking_sphinx/deltas/default_delta.rb, line 30
def reset_query(model)
  "UPDATE #{model.quoted_table_name} SET " +
  "#{model.connection.quote_column_name(@column.to_s)} = #{adapter.boolean(false)} " +
  "WHERE #{model.connection.quote_column_name(@column.to_s)} = #{adapter.boolean(true)}"
end
toggle(instance) click to toggle source
# File lib/thinking_sphinx/deltas/default_delta.rb, line 22
def toggle(instance)
  instance.send "#{@column}=", true
end
toggled(instance) click to toggle source
# File lib/thinking_sphinx/deltas/default_delta.rb, line 26
def toggled(instance)
  instance.send "#{@column}"
end