Permalink
Browse files

Merge branch 'v1'

  • Loading branch information...
2 parents 1f0556a + c9a01d1 commit dfa4db67fb1e4ca835a57d6763a885a56d2e6c89 @pat committed Sep 23, 2012
Showing with 11 additions and 9 deletions.
  1. +11 −9 lib/thinking_sphinx/active_record/delta.rb
@@ -3,7 +3,7 @@ module ActiveRecord
# This module contains all the delta-related code for models. There isn't
# really anything you need to call manually in here - except perhaps
# index_delta, but not sure what reason why.
- #
+ #
module Delta
# Code for after_commit callback is written by Eli Miller:
# http://elimiller.blogspot.com/2007/06/proper-cache-expiry-with-aftercommit.html
@@ -18,38 +18,40 @@ class << self
def index_delta(instance = nil)
delta_objects.each { |obj| obj.index(self, instance) }
end
-
+
def delta_objects
self.sphinx_indexes.collect(&:delta_object).compact
end
end
-
+
def toggled_delta?
self.class.delta_objects.any? { |obj| obj.toggled(self) }
end
-
+
private
-
+
# Set the delta value for the model to be true.
def toggle_delta
self.class.delta_objects.each { |obj|
obj.toggle(self)
} if should_toggle_delta?
end
-
+
# Build the delta index for the related model. This won't be called
# if running in the test environment.
- #
+ #
def index_delta
self.class.index_delta(self) if self.class.delta_objects.any? { |obj|
obj.toggled(self)
}
end
-
+
def should_toggle_delta?
+ return fire_delta? if respond_to?(:fire_delta?)
+
self.new_record? || indexed_data_changed?
end
-
+
def indexed_data_changed?
sphinx_indexes.any? { |index|
index.fields.any? { |field| field.changed?(self) } ||

0 comments on commit dfa4db6

Please sign in to comment.