Skip to content
This repository has been archived by the owner on May 9, 2022. It is now read-only.

Commit

Permalink
Fixing alt-primary-key for deletions
Browse files Browse the repository at this point in the history
  • Loading branch information
pat committed Jul 31, 2009
1 parent feafd80 commit 3018799
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 13 deletions.
6 changes: 3 additions & 3 deletions cucumber.yml
@@ -1,5 +1,5 @@
default: "--require features/support/env.rb --require features/support/db/mysql.rb --require features/support/db/active_record.rb --require features/support/post_database.rb --require features/step_definitions/alpha_steps.rb --require features/step_definitions/beta_steps.rb --require features/step_definitions/cat_steps.rb --require features/step_definitions/common_steps.rb --require features/step_definitions/datetime_delta_steps.rb --require features/step_definitions/delayed_delta_indexing_steps.rb --require features/step_definitions/extensible_delta_indexing_steps.rb --require features/step_definitions/facet_steps.rb --require features/step_definitions/find_arguments_steps.rb --require features/step_definitions/gamma_steps.rb --require features/step_definitions/scope_steps.rb --require features/step_definitions/search_steps.rb --require features/step_definitions/sphinx_steps.rb"
default: "--require features/support/env.rb --require features/support/db/mysql.rb --require features/support/db/active_record.rb --require features/support/post_database.rb --require features/step_definitions/alpha_steps.rb --require features/step_definitions/beta_steps.rb --require features/step_definitions/common_steps.rb --require features/step_definitions/datetime_delta_steps.rb --require features/step_definitions/delayed_delta_indexing_steps.rb --require features/step_definitions/extensible_delta_indexing_steps.rb --require features/step_definitions/facet_steps.rb --require features/step_definitions/find_arguments_steps.rb --require features/step_definitions/gamma_steps.rb --require features/step_definitions/scope_steps.rb --require features/step_definitions/search_steps.rb --require features/step_definitions/sphinx_steps.rb"

mysql: "--require features/support/env.rb --require features/support/db/mysql.rb --require features/support/db/active_record.rb --require features/support/post_database.rb --require features/step_definitions/alpha_steps.rb --require features/step_definitions/beta_steps.rb --require features/step_definitions/cat_steps.rb --require features/step_definitions/common_steps.rb --require features/step_definitions/datetime_delta_steps.rb --require features/step_definitions/delayed_delta_indexing_steps.rb --require features/step_definitions/extensible_delta_indexing_steps.rb --require features/step_definitions/facet_steps.rb --require features/step_definitions/find_arguments_steps.rb --require features/step_definitions/gamma_steps.rb --require features/step_definitions/scope_steps.rb --require features/step_definitions/search_steps.rb --require features/step_definitions/sphinx_steps.rb features/alternate_primary_key.feature features/attribute_transformation.feature features/attribute_updates.feature features/datetime_deltas.feature features/delayed_delta_indexing.feature features/deleting_instances.feature features/excerpts.feature features/extensible_delta_indexing.feature features/facets.feature features/facets_across_model.feature features/handling_edits.feature features/retry_stale_indexes.feature features/searching_across_models.feature features/searching_by_model.feature features/searching_with_find_arguments.feature features/sphinx_detection.feature features/sphinx_scopes.feature features/sti_searching.feature"
mysql: "--require features/support/env.rb --require features/support/db/mysql.rb --require features/support/db/active_record.rb --require features/support/post_database.rb --require features/step_definitions/alpha_steps.rb --require features/step_definitions/beta_steps.rb --require features/step_definitions/common_steps.rb --require features/step_definitions/datetime_delta_steps.rb --require features/step_definitions/delayed_delta_indexing_steps.rb --require features/step_definitions/extensible_delta_indexing_steps.rb --require features/step_definitions/facet_steps.rb --require features/step_definitions/find_arguments_steps.rb --require features/step_definitions/gamma_steps.rb --require features/step_definitions/scope_steps.rb --require features/step_definitions/search_steps.rb --require features/step_definitions/sphinx_steps.rb features/alternate_primary_key.feature features/attribute_transformation.feature features/attribute_updates.feature features/datetime_deltas.feature features/delayed_delta_indexing.feature features/deleting_instances.feature features/excerpts.feature features/extensible_delta_indexing.feature features/facets.feature features/facets_across_model.feature features/handling_edits.feature features/retry_stale_indexes.feature features/searching_across_models.feature features/searching_by_model.feature features/searching_with_find_arguments.feature features/sphinx_detection.feature features/sphinx_scopes.feature features/sti_searching.feature"

postgresql: "--require features/support/env.rb --require features/support/db/postgresql.rb --require features/support/db/active_record.rb --require features/support/post_database.rb --require features/step_definitions/alpha_steps.rb --require features/step_definitions/beta_steps.rb --require features/step_definitions/cat_steps.rb --require features/step_definitions/common_steps.rb --require features/step_definitions/datetime_delta_steps.rb --require features/step_definitions/delayed_delta_indexing_steps.rb --require features/step_definitions/extensible_delta_indexing_steps.rb --require features/step_definitions/facet_steps.rb --require features/step_definitions/find_arguments_steps.rb --require features/step_definitions/gamma_steps.rb --require features/step_definitions/scope_steps.rb --require features/step_definitions/search_steps.rb --require features/step_definitions/sphinx_steps.rb features/alternate_primary_key.feature features/attribute_transformation.feature features/attribute_updates.feature features/datetime_deltas.feature features/delayed_delta_indexing.feature features/deleting_instances.feature features/excerpts.feature features/extensible_delta_indexing.feature features/facets.feature features/facets_across_model.feature features/handling_edits.feature features/retry_stale_indexes.feature features/searching_across_models.feature features/searching_by_model.feature features/searching_with_find_arguments.feature features/sphinx_detection.feature features/sphinx_scopes.feature features/sti_searching.feature"
postgresql: "--require features/support/env.rb --require features/support/db/postgresql.rb --require features/support/db/active_record.rb --require features/support/post_database.rb --require features/step_definitions/alpha_steps.rb --require features/step_definitions/beta_steps.rb --require features/step_definitions/common_steps.rb --require features/step_definitions/datetime_delta_steps.rb --require features/step_definitions/delayed_delta_indexing_steps.rb --require features/step_definitions/extensible_delta_indexing_steps.rb --require features/step_definitions/facet_steps.rb --require features/step_definitions/find_arguments_steps.rb --require features/step_definitions/gamma_steps.rb --require features/step_definitions/scope_steps.rb --require features/step_definitions/search_steps.rb --require features/step_definitions/sphinx_steps.rb features/alternate_primary_key.feature features/attribute_transformation.feature features/attribute_updates.feature features/datetime_deltas.feature features/delayed_delta_indexing.feature features/deleting_instances.feature features/excerpts.feature features/extensible_delta_indexing.feature features/facets.feature features/facets_across_model.feature features/handling_edits.feature features/retry_stale_indexes.feature features/searching_across_models.feature features/searching_by_model.feature features/searching_with_find_arguments.feature features/sphinx_detection.feature features/sphinx_scopes.feature features/sti_searching.feature"
12 changes: 11 additions & 1 deletion features/alternate_primary_key.feature
Expand Up @@ -14,4 +14,14 @@ Feature: Searching on a single model
And I am searching on robots
When I search for fritz
Then I should get 1 result


Scenario: Deleting an instance
Given Sphinx is running
And I am searching on robots
When I search for Expendable
Then I should get 1 result

When I destroy robot Expendable
And I wait for Sphinx to catch up
And I search for three
Then I should get 0 results
4 changes: 0 additions & 4 deletions features/step_definitions/beta_steps.rb
@@ -1,7 +1,3 @@
When /^I destroy beta (\w+)$/ do |name|
Beta.find_by_name(name).destroy
end

When /^I create a new beta named (\w+)$/ do |name|
Beta.create(:name => name, :value => 101)
end
Expand Down
3 changes: 0 additions & 3 deletions features/step_definitions/cat_steps.rb

This file was deleted.

5 changes: 5 additions & 0 deletions features/step_definitions/common_steps.rb
Expand Up @@ -121,6 +121,11 @@
end
end

When /^I destroy (\w+) (\w+)$/ do |model, name|
model.gsub(/\s/, '_').camelize.
constantize.find_by_name(name).destroy
end

Then /^the (\w+) of each result should indicate order$/ do |attribute|
results.inject(nil) do |prev, current|
unless prev.nil?
Expand Down
1 change: 1 addition & 0 deletions features/support/db/fixtures/robots.rb
Expand Up @@ -6,6 +6,7 @@ class Robot < ActiveRecord::Base
Robot.create :name => 'Fritz', :internal_id => 'F0001'
Robot.create :name => 'Sizzle', :internal_id => 'S0001'
Robot.create :name => 'Sizzle Jr.', :internal_id => 'S0002'
Robot.create :name => 'Expendable', :internal_id => 'E0001'

# Annnnnnnnnnd we're back
class Robot < ActiveRecord::Base
Expand Down
3 changes: 1 addition & 2 deletions lib/thinking_sphinx/active_record.rb
Expand Up @@ -285,8 +285,7 @@ def primary_key_for_sphinx
end

def sphinx_document_id
key = self.class.primary_key_for_sphinx
self.attributes[key] * ThinkingSphinx.indexed_models.size +
primary_key_for_sphinx * ThinkingSphinx.indexed_models.size +
ThinkingSphinx.indexed_models.index(self.class.source_of_sphinx_index.name)
end

Expand Down

0 comments on commit 3018799

Please sign in to comment.