thinking-sphinx 1.3.4 → 1.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. data/README.textile +15 -4
  2. data/VERSION +1 -0
  3. data/features/alternate_primary_key.feature +1 -1
  4. data/features/attribute_updates.feature +11 -5
  5. data/features/deleting_instances.feature +3 -0
  6. data/features/searching_by_index.feature +40 -0
  7. data/features/step_definitions/alpha_steps.rb +5 -1
  8. data/features/step_definitions/beta_steps.rb +1 -1
  9. data/features/step_definitions/common_steps.rb +12 -1
  10. data/features/step_definitions/sphinx_steps.rb +8 -4
  11. data/features/support/db/fixtures/tags.rb +1 -1
  12. data/features/support/env.rb +3 -0
  13. data/features/support/models/alpha.rb +11 -0
  14. data/lib/cucumber/thinking_sphinx/internal_world.rb +7 -6
  15. data/lib/thinking_sphinx.rb +40 -31
  16. data/lib/thinking_sphinx/active_record.rb +164 -195
  17. data/lib/thinking_sphinx/active_record/attribute_updates.rb +9 -6
  18. data/lib/thinking_sphinx/configuration.rb +1 -1
  19. data/lib/thinking_sphinx/deltas/default_delta.rb +14 -20
  20. data/lib/thinking_sphinx/index.rb +76 -19
  21. data/lib/thinking_sphinx/index/builder.rb +2 -2
  22. data/lib/thinking_sphinx/search.rb +7 -0
  23. data/lib/thinking_sphinx/search_methods.rb +22 -4
  24. data/lib/thinking_sphinx/source.rb +6 -6
  25. data/lib/thinking_sphinx/source/sql.rb +4 -2
  26. data/spec/{lib/thinking_sphinx → thinking_sphinx}/active_record/delta_spec.rb +4 -6
  27. data/spec/{lib/thinking_sphinx → thinking_sphinx}/active_record/has_many_association_spec.rb +0 -0
  28. data/spec/{lib/thinking_sphinx → thinking_sphinx}/active_record/scopes_spec.rb +0 -0
  29. data/spec/{lib/thinking_sphinx → thinking_sphinx}/active_record_spec.rb +254 -94
  30. data/spec/{lib/thinking_sphinx → thinking_sphinx}/association_spec.rb +0 -0
  31. data/spec/{lib/thinking_sphinx → thinking_sphinx}/attribute_spec.rb +0 -0
  32. data/spec/{lib/thinking_sphinx → thinking_sphinx}/configuration_spec.rb +2 -2
  33. data/spec/{lib/thinking_sphinx → thinking_sphinx}/core/array_spec.rb +0 -0
  34. data/spec/{lib/thinking_sphinx → thinking_sphinx}/core/string_spec.rb +0 -0
  35. data/spec/{lib/thinking_sphinx → thinking_sphinx}/excerpter_spec.rb +0 -0
  36. data/spec/{lib/thinking_sphinx → thinking_sphinx}/facet_search_spec.rb +0 -0
  37. data/spec/{lib/thinking_sphinx → thinking_sphinx}/facet_spec.rb +0 -0
  38. data/spec/{lib/thinking_sphinx → thinking_sphinx}/field_spec.rb +0 -0
  39. data/spec/{lib/thinking_sphinx → thinking_sphinx}/index/builder_spec.rb +10 -0
  40. data/spec/{lib/thinking_sphinx → thinking_sphinx}/index/faux_column_spec.rb +0 -0
  41. data/spec/thinking_sphinx/index_spec.rb +177 -0
  42. data/spec/{lib/thinking_sphinx → thinking_sphinx}/rails_additions_spec.rb +0 -0
  43. data/spec/{lib/thinking_sphinx → thinking_sphinx}/search_methods_spec.rb +0 -0
  44. data/spec/{lib/thinking_sphinx → thinking_sphinx}/search_spec.rb +33 -0
  45. data/spec/{lib/thinking_sphinx → thinking_sphinx}/source_spec.rb +0 -0
  46. data/spec/{lib/thinking_sphinx_spec.rb → thinking_sphinx_spec.rb} +62 -50
  47. data/tasks/distribution.rb +3 -3
  48. metadata +27 -31
  49. data/VERSION.yml +0 -5
  50. data/features/support/db/active_record.rb +0 -40
  51. data/features/support/db/database.yml +0 -5
  52. data/features/support/db/mysql.rb +0 -3
  53. data/features/support/db/postgresql.rb +0 -3
  54. data/features/support/post_database.rb +0 -43
  55. data/spec/lib/thinking_sphinx/index_spec.rb +0 -45
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thinking-sphinx
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.4
4
+ version: 1.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pat Allan
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-11-16 00:00:00 +11:00
12
+ date: 2009-11-26 00:00:00 +11:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -30,7 +30,7 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 1.0.1
33
+ version: 1.0.2
34
34
  version:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: after_commit
@@ -40,7 +40,7 @@ dependencies:
40
40
  requirements:
41
41
  - - ">="
42
42
  - !ruby/object:Gem::Version
43
- version: 1.0.2
43
+ version: 1.0.5
44
44
  version:
45
45
  description: A concise and easy-to-use Ruby library that connects ActiveRecord to the Sphinx search daemon, managing configuration, indexing and searching.
46
46
  email: pat@freelancing-gods.com
@@ -53,7 +53,7 @@ extra_rdoc_files:
53
53
  files:
54
54
  - LICENCE
55
55
  - README.textile
56
- - VERSION.yml
56
+ - VERSION
57
57
  - lib/cucumber/thinking_sphinx/external_world.rb
58
58
  - lib/cucumber/thinking_sphinx/internal_world.rb
59
59
  - lib/cucumber/thinking_sphinx/sql_logger.rb
@@ -141,6 +141,7 @@ test_files:
141
141
  - features/handling_edits.feature
142
142
  - features/retry_stale_indexes.feature
143
143
  - features/searching_across_models.feature
144
+ - features/searching_by_index.feature
144
145
  - features/searching_by_model.feature
145
146
  - features/searching_with_find_arguments.feature
146
147
  - features/sphinx_detection.feature
@@ -158,8 +159,6 @@ test_files:
158
159
  - features/sti_searching.feature
159
160
  - features/support/database.example.yml
160
161
  - features/support/database.yml
161
- - features/support/db/active_record.rb
162
- - features/support/db/database.yml
163
162
  - features/support/db/fixtures/alphas.rb
164
163
  - features/support/db/fixtures/authors.rb
165
164
  - features/support/db/fixtures/betas.rb
@@ -191,8 +190,6 @@ test_files:
191
190
  - features/support/db/migrations/create_robots.rb
192
191
  - features/support/db/migrations/create_taggings.rb
193
192
  - features/support/db/migrations/create_tags.rb
194
- - features/support/db/mysql.rb
195
- - features/support/db/postgresql.rb
196
193
  - features/support/env.rb
197
194
  - features/support/lib/generic_delta_handler.rb
198
195
  - features/support/models/alpha.rb
@@ -212,25 +209,24 @@ test_files:
212
209
  - features/support/models/robot.rb
213
210
  - features/support/models/tag.rb
214
211
  - features/support/models/tagging.rb
215
- - features/support/post_database.rb
216
- - spec/lib/thinking_sphinx/active_record/delta_spec.rb
217
- - spec/lib/thinking_sphinx/active_record/has_many_association_spec.rb
218
- - spec/lib/thinking_sphinx/active_record/scopes_spec.rb
219
- - spec/lib/thinking_sphinx/active_record_spec.rb
220
- - spec/lib/thinking_sphinx/association_spec.rb
221
- - spec/lib/thinking_sphinx/attribute_spec.rb
222
- - spec/lib/thinking_sphinx/configuration_spec.rb
223
- - spec/lib/thinking_sphinx/core/array_spec.rb
224
- - spec/lib/thinking_sphinx/core/string_spec.rb
225
- - spec/lib/thinking_sphinx/excerpter_spec.rb
226
- - spec/lib/thinking_sphinx/facet_search_spec.rb
227
- - spec/lib/thinking_sphinx/facet_spec.rb
228
- - spec/lib/thinking_sphinx/field_spec.rb
229
- - spec/lib/thinking_sphinx/index/builder_spec.rb
230
- - spec/lib/thinking_sphinx/index/faux_column_spec.rb
231
- - spec/lib/thinking_sphinx/index_spec.rb
232
- - spec/lib/thinking_sphinx/rails_additions_spec.rb
233
- - spec/lib/thinking_sphinx/search_methods_spec.rb
234
- - spec/lib/thinking_sphinx/search_spec.rb
235
- - spec/lib/thinking_sphinx/source_spec.rb
236
- - spec/lib/thinking_sphinx_spec.rb
212
+ - spec/thinking_sphinx/active_record/delta_spec.rb
213
+ - spec/thinking_sphinx/active_record/has_many_association_spec.rb
214
+ - spec/thinking_sphinx/active_record/scopes_spec.rb
215
+ - spec/thinking_sphinx/active_record_spec.rb
216
+ - spec/thinking_sphinx/association_spec.rb
217
+ - spec/thinking_sphinx/attribute_spec.rb
218
+ - spec/thinking_sphinx/configuration_spec.rb
219
+ - spec/thinking_sphinx/core/array_spec.rb
220
+ - spec/thinking_sphinx/core/string_spec.rb
221
+ - spec/thinking_sphinx/excerpter_spec.rb
222
+ - spec/thinking_sphinx/facet_search_spec.rb
223
+ - spec/thinking_sphinx/facet_spec.rb
224
+ - spec/thinking_sphinx/field_spec.rb
225
+ - spec/thinking_sphinx/index/builder_spec.rb
226
+ - spec/thinking_sphinx/index/faux_column_spec.rb
227
+ - spec/thinking_sphinx/index_spec.rb
228
+ - spec/thinking_sphinx/rails_additions_spec.rb
229
+ - spec/thinking_sphinx/search_methods_spec.rb
230
+ - spec/thinking_sphinx/search_spec.rb
231
+ - spec/thinking_sphinx/source_spec.rb
232
+ - spec/thinking_sphinx_spec.rb
data/VERSION.yml DELETED
@@ -1,5 +0,0 @@
1
- ---
2
- :patch: 4
3
- :major: 1
4
- :build:
5
- :minor: 3
@@ -1,40 +0,0 @@
1
- require 'yaml'
2
- require 'active_record'
3
-
4
- # Database Defaults
5
- host = "localhost"
6
- username = "thinking_sphinx"
7
- password = nil
8
-
9
- # Read in YAML file
10
- if File.exist?("features/support/db/database.yml")
11
- config = YAML.load open("features/support/db/database.yml")
12
- host = config["host"] || host
13
- username = config["username"] || username
14
- password = config["password"] || password
15
- end
16
-
17
- # Set up Connection
18
- ActiveRecord::Base.establish_connection(
19
- :adapter => Database,
20
- :database => 'thinking_sphinx',
21
- :username => username,
22
- :password => password,
23
- :host => host
24
- )
25
-
26
- # Copied from ActiveRecord's test suite
27
- ActiveRecord::Base.connection.class.class_eval do
28
- IGNORED_SQL = [
29
- /^PRAGMA/, /^SELECT currval/, /^SELECT CAST/, /^SELECT @@IDENTITY/,
30
- /^SELECT @@ROWCOUNT/, /^SHOW FIELDS/
31
- ]
32
-
33
- def execute_with_query_record(sql, name = nil, &block)
34
- $queries_executed ||= []
35
- $queries_executed << sql unless IGNORED_SQL.any? { |r| sql =~ r }
36
- execute_without_query_record(sql, name, &block)
37
- end
38
-
39
- alias_method_chain :execute, :query_record
40
- end
@@ -1,5 +0,0 @@
1
- adapter: mysql
2
- username: thinking_sphinx
3
- host: localhost
4
- password: thinking_sphinx
5
- pool: 1
@@ -1,3 +0,0 @@
1
- require 'active_record'
2
- Database = defined?(JRUBY_VERSION) ? 'jdbcmysql' : 'mysql'
3
- require "active_record/connection_adapters/#{Database}_adapter"
@@ -1,3 +0,0 @@
1
- require 'active_record'
2
- Database = defined?(JRUBY_VERSION) ? 'jdbcpostgresql' : 'postgresql'
3
- require "active_record/connection_adapters/#{Database}_adapter"
@@ -1,43 +0,0 @@
1
- $:.unshift File.dirname(__FILE__) + '/../../lib'
2
-
3
- require 'lib/thinking_sphinx'
4
-
5
- %w( tmp/config tmp/log tmp/db/sphinx/development ).each do |path|
6
- FileUtils.mkdir_p "#{Dir.pwd}/#{path}"
7
- end
8
-
9
- Kernel.const_set :RAILS_ROOT, "#{Dir.pwd}/tmp" unless defined?(RAILS_ROOT)
10
-
11
- at_exit do
12
- ThinkingSphinx::Configuration.instance.controller.stop
13
- sleep(1) # Ensure Sphinx has shut down completely
14
- ActiveRecord::Base.logger.close
15
- FileUtils.rm_r "#{Dir.pwd}/tmp"
16
- end
17
-
18
- # Add log file
19
- ActiveRecord::Base.logger = Logger.new open("tmp/active_record.log", "a")
20
-
21
- # Set up database tables
22
- Dir["features/support/db/migrations/*.rb"].each do |file|
23
- require file.gsub(/\.rb$/, '')
24
- end
25
-
26
- # Load Models
27
- Dir["features/support/models/*.rb"].sort.each do |file|
28
- require file.gsub(/\.rb$/, '')
29
- end
30
-
31
- ThinkingSphinx.deltas_enabled = false
32
-
33
- # Load Fixtures
34
- Dir["features/support/db/fixtures/*.rb"].each do |file|
35
- require file.gsub(/\.rb$/, '')
36
- end
37
-
38
- ThinkingSphinx.deltas_enabled = true
39
- ThinkingSphinx.suppress_delta_output = true
40
-
41
- ThinkingSphinx::Configuration.instance.build
42
- ThinkingSphinx::Configuration.instance.controller.index
43
- ThinkingSphinx::Configuration.instance.controller.start
@@ -1,45 +0,0 @@
1
- require 'spec/spec_helper'
2
-
3
- describe ThinkingSphinx::Index do
4
- describe "prefix_fields method" do
5
- before :each do
6
- @index = ThinkingSphinx::Index.new(Person)
7
-
8
- @field_a = stub('field', :prefixes => true)
9
- @field_b = stub('field', :prefixes => false)
10
- @field_c = stub('field', :prefixes => true)
11
-
12
- @index.stub!(:fields => [@field_a, @field_b, @field_c])
13
- end
14
-
15
- it "should return fields that are flagged as prefixed" do
16
- @index.prefix_fields.should include(@field_a)
17
- @index.prefix_fields.should include(@field_c)
18
- end
19
-
20
- it "should not return fields that aren't flagged as prefixed" do
21
- @index.prefix_fields.should_not include(@field_b)
22
- end
23
- end
24
-
25
- describe "infix_fields method" do
26
- before :each do
27
- @index = ThinkingSphinx::Index.new(Person)
28
-
29
- @field_a = stub('field', :infixes => true)
30
- @field_b = stub('field', :infixes => false)
31
- @field_c = stub('field', :infixes => true)
32
-
33
- @index.stub!(:fields => [@field_a, @field_b, @field_c])
34
- end
35
-
36
- it "should return fields that are flagged as infixed" do
37
- @index.infix_fields.should include(@field_a)
38
- @index.infix_fields.should include(@field_c)
39
- end
40
-
41
- it "should not return fields that aren't flagged as infixed" do
42
- @index.infix_fields.should_not include(@field_b)
43
- end
44
- end
45
- end