Skip to content

Commit

Permalink
Don't update deltas in toggle_deleted if deltas not enabled
Browse files Browse the repository at this point in the history
Also moved check for test environment into the setting of default value for deltas_enabled?
  so that deltas can be turned on and off
  • Loading branch information
Seth Walker authored and pat committed Jul 18, 2008
1 parent 38b3393 commit 08a9948
Show file tree
Hide file tree
Showing 6 changed files with 12 additions and 9 deletions.
6 changes: 4 additions & 2 deletions lib/thinking_sphinx.rb
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,12 @@ def self.define_indexes=(value)
@@define_indexes = value
end

@@deltas_enabled = nil

# Check if delta indexing is enabled.
#
def self.deltas_enabled?
@@deltas_enabled = true unless defined?(@@deltas_enabled)
@@deltas_enabled = ('test' == ThinkingSphinx::Configuration.environment ? false : true) if @@deltas_enabled.nil?
@@deltas_enabled == true
end

Expand All @@ -79,4 +81,4 @@ def self.use_group_by_shortcut?
"SELECT @@global.sql_mode, @@session.sql_mode;"
).all? { |key,value| value.nil? || value[/ONLY_FULL_GROUP_BY/].nil? }
end
end
end
3 changes: 2 additions & 1 deletion lib/thinking_sphinx/active_record.rb
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,8 @@ def toggle_deleted
"#{self.class.indexes.first.name}_delta",
['sphinx_deleted'],
{self.id => 1}
) if self.class.indexes.any? { |index| index.delta? } && self.delta?
) if self.class.indexes.any? { |index| index.delta? } && self.delta? && ThinkingSphinx.deltas_enabled?
rescue ThinkingSphinx::ConnectionError
end
end
end
5 changes: 1 addition & 4 deletions lib/thinking_sphinx/active_record/delta.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,7 @@ def toggle_delta
# if running in the test environment.
#
def index_delta
if ThinkingSphinx::Configuration.environment == "test" ||
!ThinkingSphinx.deltas_enabled?
return true
end
return true unless ThinkingSphinx.deltas_enabled?

configuration = ThinkingSphinx::Configuration.new
system "indexer --config #{configuration.config_file} --rotate #{self.class.indexes.first.name}_delta"
Expand Down
3 changes: 2 additions & 1 deletion spec/unit/thinking_sphinx/active_record/delta_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@
end

it "shouldn't index if the environment is 'test'" do
ThinkingSphinx.unstub_method(:deltas_enabled?)
ThinkingSphinx::Configuration.stub_method(:environment => "test")

@person.send(:index_delta)
Expand All @@ -182,4 +183,4 @@
)
end
end
end
end
1 change: 1 addition & 0 deletions spec/unit/thinking_sphinx/active_record_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ class TestModel < ActiveRecord::Base; end
end

it "should update the delta index's deleted flag if delta indexing is enabled and the instance's delta is true" do
ThinkingSphinx.stub_method(:deltas_enabled? => true)
Person.indexes.each { |index| index.stub_method(:delta? => true) }
@person.delta = true

Expand Down
3 changes: 2 additions & 1 deletion spec/unit/thinking_sphinx_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
end

it "should index deltas by default" do
ThinkingSphinx.deltas_enabled = nil
ThinkingSphinx.deltas_enabled?.should be_true
end

Expand Down Expand Up @@ -104,4 +105,4 @@
end
end
end
end
end

0 comments on commit 08a9948

Please sign in to comment.