thinking-sphinx 2.0.14 → 2.1.0

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 (33) hide show
  1. data/HISTORY +17 -1
  2. data/features/attribute_updates.feature +15 -13
  3. data/features/deleting_instances.feature +16 -13
  4. data/features/handling_edits.feature +20 -17
  5. data/features/searching_by_index.feature +6 -5
  6. data/features/step_definitions/common_steps.rb +4 -0
  7. data/features/support/env.rb +0 -3
  8. data/lib/thinking_sphinx.rb +8 -1
  9. data/lib/thinking_sphinx/active_record.rb +3 -3
  10. data/lib/thinking_sphinx/active_record/attribute_updates.rb +5 -4
  11. data/lib/thinking_sphinx/adapters/abstract_adapter.rb +7 -0
  12. data/lib/thinking_sphinx/auto_version.rb +1 -1
  13. data/lib/thinking_sphinx/bundled_search.rb +6 -10
  14. data/lib/thinking_sphinx/configuration.rb +19 -33
  15. data/lib/thinking_sphinx/connection.rb +71 -0
  16. data/lib/thinking_sphinx/deltas.rb +2 -0
  17. data/lib/thinking_sphinx/deltas/default_delta.rb +14 -18
  18. data/lib/thinking_sphinx/deltas/delete_job.rb +16 -0
  19. data/lib/thinking_sphinx/deltas/index_job.rb +17 -0
  20. data/lib/thinking_sphinx/search.rb +26 -15
  21. data/lib/thinking_sphinx/tasks.rb +1 -5
  22. data/spec/spec_helper.rb +0 -3
  23. data/spec/thinking_sphinx/active_record/delta_spec.rb +6 -5
  24. data/spec/thinking_sphinx/active_record/scopes_spec.rb +2 -1
  25. data/spec/thinking_sphinx/active_record_spec.rb +2 -2
  26. data/spec/thinking_sphinx/adapters/abstract_adapter_spec.rb +18 -0
  27. data/spec/thinking_sphinx/configuration_spec.rb +0 -68
  28. data/spec/thinking_sphinx/connection_spec.rb +77 -0
  29. data/spec/thinking_sphinx/facet_search_spec.rb +25 -25
  30. data/spec/thinking_sphinx/search_methods_spec.rb +34 -34
  31. data/spec/thinking_sphinx/search_spec.rb +4 -16
  32. metadata +197 -186
  33. data/lib/thinking_sphinx/version.rb +0 -3
@@ -6,18 +6,19 @@ describe ThinkingSphinx::Search do
6
6
  @config = ThinkingSphinx::Configuration.instance
7
7
  @client = Riddle::Client.new
8
8
 
9
- @config.stub!(:client => @client)
9
+ ThinkingSphinx::Connection.stub(:take).and_yield(@client)
10
+
10
11
  @client.stub!(:query => {:matches => [], :total_found => 41, :total => 41})
11
12
  end
12
13
 
13
14
  it "not request results from the client if not accessing items" do
14
- @config.should_not_receive(:client)
15
+ ThinkingSphinx::Connection.should_not_receive(:take)
15
16
 
16
17
  ThinkingSphinx::Search.new.class
17
18
  end
18
19
 
19
20
  it "should request results if access is required" do
20
- @config.should_receive(:client)
21
+ ThinkingSphinx::Connection.should_receive(:take).and_yield(@client)
21
22
 
22
23
  ThinkingSphinx::Search.new.first
23
24
  end
@@ -1433,19 +1434,6 @@ describe ThinkingSphinx::Search do
1433
1434
  @search.freeze.should be_a(ThinkingSphinx::Search)
1434
1435
  end
1435
1436
  end
1436
-
1437
- describe '#client' do
1438
- let(:client) { Riddle::Client.new }
1439
- it "should respect the client in options" do
1440
- search = ThinkingSphinx::Search.new :client => client
1441
- search.client.should == client
1442
- end
1443
-
1444
- it "should get a new client from the configuration singleton by default" do
1445
- ThinkingSphinx::Configuration.instance.stub!(:client => client)
1446
- ThinkingSphinx::Search.new.client.should == client
1447
- end
1448
- end
1449
1437
  end
1450
1438
 
1451
1439
  describe ThinkingSphinx::Search, "playing nice with Search model" do
metadata CHANGED
@@ -1,208 +1,216 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: thinking-sphinx
3
- version: !ruby/object:Gem::Version
4
- hash: 19
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.1.0
5
5
  prerelease:
6
- segments:
7
- - 2
8
- - 0
9
- - 14
10
- version: 2.0.14
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Pat Allan
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2013-01-02 00:00:00 +11:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- requirement: &id001 !ruby/object:Gem::Requirement
12
+ date: 2013-05-08 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activerecord
16
+ requirement: !ruby/object:Gem::Requirement
23
17
  none: false
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- hash: 1
28
- segments:
29
- - 3
30
- - 0
31
- - 3
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
32
21
  version: 3.0.3
33
- version_requirements: *id001
34
- name: activerecord
35
- prerelease: false
36
22
  type: :runtime
37
- - !ruby/object:Gem::Dependency
38
- requirement: &id002 !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
39
25
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 5
44
- segments:
45
- - 1
46
- - 5
47
- - 3
48
- version: 1.5.3
49
- version_requirements: *id002
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 3.0.3
30
+ - !ruby/object:Gem::Dependency
50
31
  name: riddle
51
- prerelease: false
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 1.5.6
52
38
  type: :runtime
53
- - !ruby/object:Gem::Dependency
54
- requirement: &id003 !ruby/object:Gem::Requirement
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
55
41
  none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 15
60
- segments:
61
- - 2
62
- - 1
63
- - 2
64
- version: 2.1.2
65
- version_requirements: *id003
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 1.5.6
46
+ - !ruby/object:Gem::Dependency
66
47
  name: builder
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 2.1.2
54
+ type: :runtime
67
55
  prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.1.2
62
+ - !ruby/object:Gem::Dependency
63
+ name: innertube
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 1.0.2
68
70
  type: :runtime
69
- - !ruby/object:Gem::Dependency
70
- requirement: &id004 !ruby/object:Gem::Requirement
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
71
73
  none: false
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- hash: 1
76
- segments:
77
- - 3
78
- - 0
79
- - 3
80
- version: 3.0.3
81
- version_requirements: *id004
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.0.2
78
+ - !ruby/object:Gem::Dependency
82
79
  name: actionpack
83
- prerelease: false
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: 3.0.3
84
86
  type: :development
85
- - !ruby/object:Gem::Dependency
86
- requirement: &id005 !ruby/object:Gem::Requirement
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
87
89
  none: false
88
- requirements:
89
- - - "="
90
- - !ruby/object:Gem::Version
91
- hash: 15
92
- segments:
93
- - 0
94
- - 4
95
- - 0
96
- version: 0.4.0
97
- version_requirements: *id005
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: 3.0.3
94
+ - !ruby/object:Gem::Dependency
98
95
  name: appraisal
99
- prerelease: false
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - '='
100
+ - !ruby/object:Gem::Version
101
+ version: 0.4.0
100
102
  type: :development
101
- - !ruby/object:Gem::Dependency
102
- requirement: &id006 !ruby/object:Gem::Requirement
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
103
105
  none: false
104
- requirements:
105
- - - "="
106
- - !ruby/object:Gem::Version
107
- hash: 19
108
- segments:
109
- - 1
110
- - 0
111
- - 2
112
- version: 1.0.2
113
- version_requirements: *id006
106
+ requirements:
107
+ - - '='
108
+ - !ruby/object:Gem::Version
109
+ version: 0.4.0
110
+ - !ruby/object:Gem::Dependency
114
111
  name: cucumber
115
- prerelease: false
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - '='
116
+ - !ruby/object:Gem::Version
117
+ version: 1.0.2
116
118
  type: :development
117
- - !ruby/object:Gem::Dependency
118
- requirement: &id007 !ruby/object:Gem::Requirement
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
119
121
  none: false
120
- requirements:
121
- - - "="
122
- - !ruby/object:Gem::Version
123
- hash: 17
124
- segments:
125
- - 0
126
- - 3
127
- - 1
128
- version: 0.3.1
129
- version_requirements: *id007
122
+ requirements:
123
+ - - '='
124
+ - !ruby/object:Gem::Version
125
+ version: 1.0.2
126
+ - !ruby/object:Gem::Dependency
130
127
  name: faker
131
- prerelease: false
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - '='
132
+ - !ruby/object:Gem::Version
133
+ version: 0.3.1
132
134
  type: :development
133
- - !ruby/object:Gem::Dependency
134
- requirement: &id008 !ruby/object:Gem::Requirement
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
135
137
  none: false
136
- requirements:
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- hash: 63
140
- segments:
141
- - 0
142
- - 9
143
- - 2
144
- version: 0.9.2
145
- version_requirements: *id008
138
+ requirements:
139
+ - - '='
140
+ - !ruby/object:Gem::Version
141
+ version: 0.3.1
142
+ - !ruby/object:Gem::Dependency
146
143
  name: rake
147
- prerelease: false
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: 0.9.2
148
150
  type: :development
149
- - !ruby/object:Gem::Dependency
150
- requirement: &id009 !ruby/object:Gem::Requirement
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
151
153
  none: false
152
- requirements:
153
- - - "="
154
- - !ruby/object:Gem::Version
155
- hash: 23
156
- segments:
157
- - 2
158
- - 6
159
- - 0
160
- version: 2.6.0
161
- version_requirements: *id009
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: 0.9.2
158
+ - !ruby/object:Gem::Dependency
162
159
  name: rspec
163
- prerelease: false
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - '='
164
+ - !ruby/object:Gem::Version
165
+ version: 2.6.0
164
166
  type: :development
165
- - !ruby/object:Gem::Dependency
166
- requirement: &id010 !ruby/object:Gem::Requirement
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
167
169
  none: false
168
- requirements:
169
- - - "="
170
- - !ruby/object:Gem::Version
171
- hash: 7
172
- segments:
173
- - 3
174
- - 0
175
- version: "3.0"
176
- version_requirements: *id010
170
+ requirements:
171
+ - - '='
172
+ - !ruby/object:Gem::Version
173
+ version: 2.6.0
174
+ - !ruby/object:Gem::Dependency
177
175
  name: will_paginate
178
- prerelease: false
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - '='
180
+ - !ruby/object:Gem::Version
181
+ version: '3.0'
179
182
  type: :development
180
- - !ruby/object:Gem::Dependency
181
- requirement: &id011 !ruby/object:Gem::Requirement
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
182
185
  none: false
183
- requirements:
184
- - - ">="
185
- - !ruby/object:Gem::Version
186
- hash: 7
187
- segments:
188
- - 0
189
- - 7
190
- - 2
191
- version: 0.7.2
192
- version_requirements: *id011
186
+ requirements:
187
+ - - '='
188
+ - !ruby/object:Gem::Version
189
+ version: '3.0'
190
+ - !ruby/object:Gem::Dependency
193
191
  name: yard
194
- prerelease: false
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: 0.7.2
195
198
  type: :development
196
- description: A concise and easy-to-use Ruby library that connects ActiveRecord to the Sphinx search daemon, managing configuration, indexing and searching.
197
- email:
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: 0.7.2
206
+ description: A concise and easy-to-use Ruby library that connects ActiveRecord to
207
+ the Sphinx search daemon, managing configuration, indexing and searching.
208
+ email:
198
209
  - pat@freelancing-gods.com
199
210
  executables: []
200
-
201
211
  extensions: []
202
-
203
212
  extra_rdoc_files: []
204
-
205
- files:
213
+ files:
206
214
  - lib/cucumber/thinking_sphinx/external_world.rb
207
215
  - lib/cucumber/thinking_sphinx/internal_world.rb
208
216
  - lib/cucumber/thinking_sphinx/sql_logger.rb
@@ -227,10 +235,13 @@ files:
227
235
  - lib/thinking_sphinx/bundled_search.rb
228
236
  - lib/thinking_sphinx/class_facet.rb
229
237
  - lib/thinking_sphinx/configuration.rb
238
+ - lib/thinking_sphinx/connection.rb
230
239
  - lib/thinking_sphinx/context.rb
231
240
  - lib/thinking_sphinx/core/string.rb
232
241
  - lib/thinking_sphinx/deltas.rb
233
242
  - lib/thinking_sphinx/deltas/default_delta.rb
243
+ - lib/thinking_sphinx/deltas/delete_job.rb
244
+ - lib/thinking_sphinx/deltas/index_job.rb
234
245
  - lib/thinking_sphinx/deploy/capistrano.rb
235
246
  - lib/thinking_sphinx/excerpter.rb
236
247
  - lib/thinking_sphinx/facet.rb
@@ -250,7 +261,6 @@ files:
250
261
  - lib/thinking_sphinx/source/sql.rb
251
262
  - lib/thinking_sphinx/tasks.rb
252
263
  - lib/thinking_sphinx/test.rb
253
- - lib/thinking_sphinx/version.rb
254
264
  - LICENCE
255
265
  - README.textile
256
266
  - HISTORY
@@ -362,6 +372,7 @@ files:
362
372
  - spec/thinking_sphinx/attribute_spec.rb
363
373
  - spec/thinking_sphinx/auto_version_spec.rb
364
374
  - spec/thinking_sphinx/configuration_spec.rb
375
+ - spec/thinking_sphinx/connection_spec.rb
365
376
  - spec/thinking_sphinx/context_spec.rb
366
377
  - spec/thinking_sphinx/core/array_spec.rb
367
378
  - spec/thinking_sphinx/core/string_spec.rb
@@ -377,44 +388,42 @@ files:
377
388
  - spec/thinking_sphinx/source_spec.rb
378
389
  - spec/thinking_sphinx/test_spec.rb
379
390
  - spec/thinking_sphinx_spec.rb
380
- has_rdoc: true
381
- homepage: http://pat.github.com/ts/en/
391
+ homepage: http://pat.github.io/thinking-sphinx/
382
392
  licenses: []
393
+ post_install_message: ! 'If you''re upgrading, you should read this:
394
+
395
+ http://pat.github.io/thinking-sphinx/upgrading.html
383
396
 
384
- post_install_message: |+
385
- If you're upgrading, you should read this:
386
- http://pat.github.com/ts/en/upgrading.html
387
-
388
- rdoc_options: []
389
397
 
390
- require_paths:
398
+ '
399
+ rdoc_options: []
400
+ require_paths:
391
401
  - lib
392
- required_ruby_version: !ruby/object:Gem::Requirement
402
+ required_ruby_version: !ruby/object:Gem::Requirement
393
403
  none: false
394
- requirements:
395
- - - ">="
396
- - !ruby/object:Gem::Version
397
- hash: 3
398
- segments:
404
+ requirements:
405
+ - - ! '>='
406
+ - !ruby/object:Gem::Version
407
+ version: '0'
408
+ segments:
399
409
  - 0
400
- version: "0"
401
- required_rubygems_version: !ruby/object:Gem::Requirement
410
+ hash: 1480797322099798226
411
+ required_rubygems_version: !ruby/object:Gem::Requirement
402
412
  none: false
403
- requirements:
404
- - - ">="
405
- - !ruby/object:Gem::Version
406
- hash: 3
407
- segments:
413
+ requirements:
414
+ - - ! '>='
415
+ - !ruby/object:Gem::Version
416
+ version: '0'
417
+ segments:
408
418
  - 0
409
- version: "0"
419
+ hash: 1480797322099798226
410
420
  requirements: []
411
-
412
421
  rubyforge_project: thinking-sphinx
413
- rubygems_version: 1.6.2
422
+ rubygems_version: 1.8.23
414
423
  signing_key:
415
424
  specification_version: 3
416
425
  summary: ActiveRecord/Rails Sphinx library
417
- test_files:
426
+ test_files:
418
427
  - features/abstract_inheritance.feature
419
428
  - features/alternate_primary_key.feature
420
429
  - features/attribute_transformation.feature
@@ -523,6 +532,7 @@ test_files:
523
532
  - spec/thinking_sphinx/attribute_spec.rb
524
533
  - spec/thinking_sphinx/auto_version_spec.rb
525
534
  - spec/thinking_sphinx/configuration_spec.rb
535
+ - spec/thinking_sphinx/connection_spec.rb
526
536
  - spec/thinking_sphinx/context_spec.rb
527
537
  - spec/thinking_sphinx/core/array_spec.rb
528
538
  - spec/thinking_sphinx/core/string_spec.rb
@@ -538,3 +548,4 @@ test_files:
538
548
  - spec/thinking_sphinx/source_spec.rb
539
549
  - spec/thinking_sphinx/test_spec.rb
540
550
  - spec/thinking_sphinx_spec.rb
551
+ has_rdoc: