thinking-sphinx 1.4.6 → 1.4.7

Sign up to get free protection for your applications and to get access to all the features.
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