thinking-sphinx 1.4.6 → 1.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. data/README.textile +6 -1
  2. data/features/searching_by_model.feature +24 -30
  3. data/features/thinking_sphinx/db/.gitignore +1 -0
  4. data/features/thinking_sphinx/db/fixtures/post_keywords.txt +1 -0
  5. data/lib/cucumber/thinking_sphinx/internal_world.rb +26 -26
  6. data/lib/thinking_sphinx.rb +17 -26
  7. data/lib/thinking_sphinx/active_record.rb +69 -74
  8. data/lib/thinking_sphinx/active_record/attribute_updates.rb +11 -10
  9. data/lib/thinking_sphinx/active_record/has_many_association.rb +2 -1
  10. data/lib/thinking_sphinx/adapters/abstract_adapter.rb +11 -11
  11. data/lib/thinking_sphinx/adapters/postgresql_adapter.rb +34 -20
  12. data/lib/thinking_sphinx/association.rb +12 -7
  13. data/lib/thinking_sphinx/attribute.rb +64 -61
  14. data/lib/thinking_sphinx/configuration.rb +32 -36
  15. data/lib/thinking_sphinx/context.rb +3 -2
  16. data/lib/thinking_sphinx/deploy/capistrano.rb +7 -9
  17. data/lib/thinking_sphinx/search.rb +201 -178
  18. data/lib/thinking_sphinx/source/sql.rb +1 -1
  19. data/lib/thinking_sphinx/tasks.rb +21 -19
  20. data/lib/thinking_sphinx/version.rb +3 -0
  21. data/spec/fixtures/data.sql +32 -0
  22. data/spec/fixtures/database.yml.default +3 -0
  23. data/spec/fixtures/models.rb +161 -0
  24. data/spec/fixtures/structure.sql +146 -0
  25. data/spec/spec_helper.rb +57 -0
  26. data/spec/sphinx_helper.rb +61 -0
  27. data/spec/thinking_sphinx/active_record/delta_spec.rb +24 -24
  28. data/spec/thinking_sphinx/active_record/has_many_association_spec.rb +22 -0
  29. data/spec/thinking_sphinx/active_record/scopes_spec.rb +25 -25
  30. data/spec/thinking_sphinx/active_record_spec.rb +110 -109
  31. data/spec/thinking_sphinx/adapters/abstract_adapter_spec.rb +38 -38
  32. data/spec/thinking_sphinx/association_spec.rb +20 -2
  33. data/spec/thinking_sphinx/context_spec.rb +61 -64
  34. data/spec/thinking_sphinx/search_spec.rb +7 -0
  35. data/spec/thinking_sphinx_spec.rb +47 -46
  36. metadata +50 -98
  37. data/VERSION +0 -1
  38. data/tasks/distribution.rb +0 -34
  39. data/tasks/testing.rb +0 -80
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: thinking-sphinx
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.4.6
5
+ version: 1.4.7
6
6
  platform: ruby
7
7
  authors:
8
8
  - Pat Allan
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-25 00:00:00 +02:00
13
+ date: 2011-08-28 00:00:00 +10:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -28,68 +28,68 @@ dependencies:
28
28
  prerelease: false
29
29
  version_requirements: *id001
30
30
  - !ruby/object:Gem::Dependency
31
- name: riddle
31
+ name: after_commit
32
32
  requirement: &id002 !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
35
  - - ">="
36
36
  - !ruby/object:Gem::Version
37
- version: 1.3.3
37
+ version: 1.0.7
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: *id002
41
41
  - !ruby/object:Gem::Dependency
42
- name: after_commit
42
+ name: riddle
43
43
  requirement: &id003 !ruby/object:Gem::Requirement
44
44
  none: false
45
45
  requirements:
46
46
  - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: 1.0.7
48
+ version: 1.3.3
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: *id003
52
52
  - !ruby/object:Gem::Dependency
53
- name: mysql
53
+ name: cucumber
54
54
  requirement: &id004 !ruby/object:Gem::Requirement
55
55
  none: false
56
56
  requirements:
57
57
  - - "="
58
58
  - !ruby/object:Gem::Version
59
- version: 2.8.1
59
+ version: 1.0.2
60
60
  type: :development
61
61
  prerelease: false
62
62
  version_requirements: *id004
63
63
  - !ruby/object:Gem::Dependency
64
- name: pg
64
+ name: faker
65
65
  requirement: &id005 !ruby/object:Gem::Requirement
66
66
  none: false
67
67
  requirements:
68
68
  - - "="
69
69
  - !ruby/object:Gem::Version
70
- version: 0.9.0
70
+ version: 0.3.1
71
71
  type: :development
72
72
  prerelease: false
73
73
  version_requirements: *id005
74
74
  - !ruby/object:Gem::Dependency
75
- name: jeweler
75
+ name: ginger
76
76
  requirement: &id006 !ruby/object:Gem::Requirement
77
77
  none: false
78
78
  requirements:
79
79
  - - "="
80
80
  - !ruby/object:Gem::Version
81
- version: 1.5.1
81
+ version: 1.2.0
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: *id006
85
85
  - !ruby/object:Gem::Dependency
86
- name: yard
86
+ name: rake
87
87
  requirement: &id007 !ruby/object:Gem::Requirement
88
88
  none: false
89
89
  requirements:
90
- - - "="
90
+ - - ">="
91
91
  - !ruby/object:Gem::Version
92
- version: 0.6.8
92
+ version: 0.9.2
93
93
  type: :development
94
94
  prerelease: false
95
95
  version_requirements: *id007
@@ -100,110 +100,42 @@ dependencies:
100
100
  requirements:
101
101
  - - "="
102
102
  - !ruby/object:Gem::Version
103
- version: 2.5.0
103
+ version: 2.6.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: *id008
107
107
  - !ruby/object:Gem::Dependency
108
- name: rspec-core
108
+ name: will_paginate
109
109
  requirement: &id009 !ruby/object:Gem::Requirement
110
110
  none: false
111
111
  requirements:
112
112
  - - "="
113
113
  - !ruby/object:Gem::Version
114
- version: 2.5.0
114
+ version: 2.3.15
115
115
  type: :development
116
116
  prerelease: false
117
117
  version_requirements: *id009
118
118
  - !ruby/object:Gem::Dependency
119
- name: rspec-expectations
119
+ name: yard
120
120
  requirement: &id010 !ruby/object:Gem::Requirement
121
121
  none: false
122
122
  requirements:
123
- - - "="
123
+ - - ">="
124
124
  - !ruby/object:Gem::Version
125
- version: 2.5.0
125
+ version: 0.7.2
126
126
  type: :development
127
127
  prerelease: false
128
128
  version_requirements: *id010
129
- - !ruby/object:Gem::Dependency
130
- name: rspec-mocks
131
- requirement: &id011 !ruby/object:Gem::Requirement
132
- none: false
133
- requirements:
134
- - - "="
135
- - !ruby/object:Gem::Version
136
- version: 2.5.0
137
- type: :development
138
- prerelease: false
139
- version_requirements: *id011
140
- - !ruby/object:Gem::Dependency
141
- name: rcov
142
- requirement: &id012 !ruby/object:Gem::Requirement
143
- none: false
144
- requirements:
145
- - - "="
146
- - !ruby/object:Gem::Version
147
- version: 0.9.8
148
- type: :development
149
- prerelease: false
150
- version_requirements: *id012
151
- - !ruby/object:Gem::Dependency
152
- name: cucumber
153
- requirement: &id013 !ruby/object:Gem::Requirement
154
- none: false
155
- requirements:
156
- - - "="
157
- - !ruby/object:Gem::Version
158
- version: 0.10.2
159
- type: :development
160
- prerelease: false
161
- version_requirements: *id013
162
- - !ruby/object:Gem::Dependency
163
- name: will_paginate
164
- requirement: &id014 !ruby/object:Gem::Requirement
165
- none: false
166
- requirements:
167
- - - "="
168
- - !ruby/object:Gem::Version
169
- version: 2.3.15
170
- type: :development
171
- prerelease: false
172
- version_requirements: *id014
173
- - !ruby/object:Gem::Dependency
174
- name: ginger
175
- requirement: &id015 !ruby/object:Gem::Requirement
176
- none: false
177
- requirements:
178
- - - "="
179
- - !ruby/object:Gem::Version
180
- version: 1.2.0
181
- type: :development
182
- prerelease: false
183
- version_requirements: *id015
184
- - !ruby/object:Gem::Dependency
185
- name: faker
186
- requirement: &id016 !ruby/object:Gem::Requirement
187
- none: false
188
- requirements:
189
- - - "="
190
- - !ruby/object:Gem::Version
191
- version: 0.3.1
192
- type: :development
193
- prerelease: false
194
- version_requirements: *id016
195
129
  description: A concise and easy-to-use Ruby library that connects ActiveRecord to the Sphinx search daemon, managing configuration, indexing and searching.
196
- email: pat@freelancing-gods.com
130
+ email:
131
+ - pat@freelancing-gods.com
197
132
  executables: []
198
133
 
199
134
  extensions: []
200
135
 
201
- extra_rdoc_files:
202
- - README.textile
136
+ extra_rdoc_files: []
137
+
203
138
  files:
204
- - LICENCE
205
- - README.textile
206
- - VERSION
207
139
  - lib/cucumber/thinking_sphinx/external_world.rb
208
140
  - lib/cucumber/thinking_sphinx/internal_world.rb
209
141
  - lib/cucumber/thinking_sphinx/sql_logger.rb
@@ -246,10 +178,11 @@ files:
246
178
  - lib/thinking_sphinx/source/sql.rb
247
179
  - lib/thinking_sphinx/tasks.rb
248
180
  - lib/thinking_sphinx/test.rb
181
+ - lib/thinking_sphinx/version.rb
249
182
  - rails/init.rb
250
- - tasks/distribution.rb
183
+ - LICENCE
184
+ - README.textile
251
185
  - tasks/rails.rake
252
- - tasks/testing.rb
253
186
  - features/abstract_inheritance.feature
254
187
  - features/alternate_primary_key.feature
255
188
  - features/attribute_transformation.feature
@@ -283,6 +216,7 @@ files:
283
216
  - features/support/env.rb
284
217
  - features/support/lib/generic_delta_handler.rb
285
218
  - features/thinking_sphinx/database.example.yml
219
+ - features/thinking_sphinx/db/.gitignore
286
220
  - features/thinking_sphinx/db/fixtures/alphas.rb
287
221
  - features/thinking_sphinx/db/fixtures/authors.rb
288
222
  - features/thinking_sphinx/db/fixtures/betas.rb
@@ -297,6 +231,7 @@ files:
297
231
  - features/thinking_sphinx/db/fixtures/gammas.rb
298
232
  - features/thinking_sphinx/db/fixtures/music.rb
299
233
  - features/thinking_sphinx/db/fixtures/people.rb
234
+ - features/thinking_sphinx/db/fixtures/post_keywords.txt
300
235
  - features/thinking_sphinx/db/fixtures/posts.rb
301
236
  - features/thinking_sphinx/db/fixtures/robots.rb
302
237
  - features/thinking_sphinx/db/fixtures/tags.rb
@@ -340,6 +275,12 @@ files:
340
275
  - features/thinking_sphinx/models/robot.rb
341
276
  - features/thinking_sphinx/models/tag.rb
342
277
  - features/thinking_sphinx/models/tagging.rb
278
+ - spec/fixtures/data.sql
279
+ - spec/fixtures/database.yml.default
280
+ - spec/fixtures/models.rb
281
+ - spec/fixtures/structure.sql
282
+ - spec/spec_helper.rb
283
+ - spec/sphinx_helper.rb
343
284
  - spec/thinking_sphinx/active_record/delta_spec.rb
344
285
  - spec/thinking_sphinx/active_record/has_many_association_spec.rb
345
286
  - spec/thinking_sphinx/active_record/scopes_spec.rb
@@ -366,7 +307,7 @@ files:
366
307
  - spec/thinking_sphinx/test_spec.rb
367
308
  - spec/thinking_sphinx_spec.rb
368
309
  has_rdoc: true
369
- homepage: http://ts.freelancing-gods.com
310
+ homepage: http://freelancing-god.github.com/ts/en/
370
311
  licenses: []
371
312
 
372
313
  post_install_message: |+
@@ -382,7 +323,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
382
323
  requirements:
383
324
  - - ">="
384
325
  - !ruby/object:Gem::Version
385
- hash: -3557249456082129398
326
+ hash: 3481790220577304341
386
327
  segments:
387
328
  - 0
388
329
  version: "0"
@@ -391,10 +332,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
391
332
  requirements:
392
333
  - - ">="
393
334
  - !ruby/object:Gem::Version
335
+ hash: 3481790220577304341
336
+ segments:
337
+ - 0
394
338
  version: "0"
395
339
  requirements: []
396
340
 
397
- rubyforge_project:
341
+ rubyforge_project: thinking-sphinx
398
342
  rubygems_version: 1.6.2
399
343
  signing_key:
400
344
  specification_version: 3
@@ -433,6 +377,7 @@ test_files:
433
377
  - features/support/env.rb
434
378
  - features/support/lib/generic_delta_handler.rb
435
379
  - features/thinking_sphinx/database.example.yml
380
+ - features/thinking_sphinx/db/.gitignore
436
381
  - features/thinking_sphinx/db/fixtures/alphas.rb
437
382
  - features/thinking_sphinx/db/fixtures/authors.rb
438
383
  - features/thinking_sphinx/db/fixtures/betas.rb
@@ -447,6 +392,7 @@ test_files:
447
392
  - features/thinking_sphinx/db/fixtures/gammas.rb
448
393
  - features/thinking_sphinx/db/fixtures/music.rb
449
394
  - features/thinking_sphinx/db/fixtures/people.rb
395
+ - features/thinking_sphinx/db/fixtures/post_keywords.txt
450
396
  - features/thinking_sphinx/db/fixtures/posts.rb
451
397
  - features/thinking_sphinx/db/fixtures/robots.rb
452
398
  - features/thinking_sphinx/db/fixtures/tags.rb
@@ -490,6 +436,12 @@ test_files:
490
436
  - features/thinking_sphinx/models/robot.rb
491
437
  - features/thinking_sphinx/models/tag.rb
492
438
  - features/thinking_sphinx/models/tagging.rb
439
+ - spec/fixtures/data.sql
440
+ - spec/fixtures/database.yml.default
441
+ - spec/fixtures/models.rb
442
+ - spec/fixtures/structure.sql
443
+ - spec/spec_helper.rb
444
+ - spec/sphinx_helper.rb
493
445
  - spec/thinking_sphinx/active_record/delta_spec.rb
494
446
  - spec/thinking_sphinx/active_record/has_many_association_spec.rb
495
447
  - spec/thinking_sphinx/active_record/scopes_spec.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.4.6
@@ -1,34 +0,0 @@
1
- desc 'Generate documentation'
2
- YARD::Rake::YardocTask.new
3
-
4
- Jeweler::Tasks.new do |gem|
5
- gem.name = "thinking-sphinx"
6
- gem.summary = "ActiveRecord/Rails Sphinx library"
7
- gem.description = "A concise and easy-to-use Ruby library that connects ActiveRecord to the Sphinx search daemon, managing configuration, indexing and searching."
8
- gem.author = "Pat Allan"
9
- gem.email = "pat@freelancing-gods.com"
10
- gem.homepage = "http://ts.freelancing-gods.com"
11
-
12
- # s.rubyforge_project = "thinking-sphinx"
13
- gem.files = FileList[
14
- "rails/*.rb",
15
- "lib/**/*.rb",
16
- "LICENCE",
17
- "README.textile",
18
- "tasks/**/*.rb",
19
- "tasks/**/*.rake",
20
- "VERSION"
21
- ]
22
- gem.test_files = FileList[
23
- "features/**/*.rb",
24
- "features/**/*.feature",
25
- "features/**/*.example.yml",
26
- "spec/**/*_spec.rb"
27
- ]
28
-
29
- gem.post_install_message = <<-MESSAGE
30
- If you're upgrading, you should read this:
31
- http://freelancing-god.github.com/ts/en/upgrading.html
32
-
33
- MESSAGE
34
- end
@@ -1,80 +0,0 @@
1
- require 'rubygems'
2
- require 'rspec/core/rake_task'
3
- require 'cucumber/rake/task'
4
-
5
- desc "Run the specs under spec"
6
- RSpec::Core::RakeTask.new do |t|
7
- t.pattern = 'spec/**/*_spec.rb'
8
- end
9
-
10
- desc "Run all feature-set configurations"
11
- task :features do |t|
12
- databases = ENV['DATABASES'] || 'mysql,postgresql'
13
- databases.split(',').each do |database|
14
- puts "rake features:#{database}"
15
- system "rake features:#{database}"
16
- end
17
- end
18
-
19
- namespace :features do
20
- def add_task(name, description)
21
- Cucumber::Rake::Task.new(name, description) do |t|
22
- t.cucumber_opts = "--format pretty features/*.feature DATABASE=#{name}"
23
- end
24
- end
25
-
26
- add_task :mysql, "Run feature-set against MySQL"
27
- add_task :postgresql, "Run feature-set against PostgreSQL"
28
- end
29
-
30
- namespace :rcov do
31
- desc "Generate RCov reports"
32
- RSpec::Core::RakeTask.new(:rspec) do |t|
33
- t.pattern = 'spec/**/*_spec.rb'
34
- t.rcov = true
35
- t.rcov_opts = [
36
- '--exclude', 'spec',
37
- '--exclude', 'gems',
38
- '--exclude', 'riddle',
39
- '--exclude', 'ruby',
40
- '--aggregate coverage.data'
41
- ]
42
- end
43
-
44
- def add_task(name, description)
45
- Cucumber::Rake::Task.new(name, description) do |t|
46
- t.cucumber_opts = "--format pretty features/*.feature DATABASE=#{name}"
47
- t.rcov = true
48
- t.rcov_opts = [
49
- '--exclude', 'spec',
50
- '--exclude', 'gems',
51
- '--exclude', 'riddle',
52
- '--exclude', 'features',
53
- '--aggregate coverage.data'
54
- ]
55
- end
56
- end
57
-
58
- add_task :mysql, "Run feature-set against MySQL with rcov"
59
- add_task :postgresql, "Run feature-set against PostgreSQL with rcov"
60
-
61
- task :all do
62
- rm 'coverage.data' if File.exist?('coverage.data')
63
- rm 'rerun.txt' if File.exist?('rerun.txt')
64
-
65
- Rake::Task['rcov:rspec'].invoke
66
- Rake::Task['rcov:mysql'].invoke
67
- Rake::Task['rcov:postgresql'].invoke
68
- end
69
- end
70
-
71
- desc "Build cucumber.yml file"
72
- task :cucumber_defaults do
73
- steps = FileList["features/step_definitions/**.rb"].collect { |path|
74
- "--require #{path}"
75
- }.join(" ")
76
-
77
- File.open('cucumber.yml', 'w') { |f|
78
- f.write "default: \"--require features/support/env.rb #{steps}\"\n"
79
- }
80
- end