thinking-sphinx 3.0.0.pre → 3.0.0.rc

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 (61) hide show
  1. data/Gemfile +4 -1
  2. data/HISTORY +16 -0
  3. data/README.textile +41 -23
  4. data/lib/thinking_sphinx.rb +9 -0
  5. data/lib/thinking_sphinx/active_record.rb +1 -0
  6. data/lib/thinking_sphinx/active_record/attribute/sphinx_presenter.rb +20 -3
  7. data/lib/thinking_sphinx/active_record/base.rb +15 -2
  8. data/lib/thinking_sphinx/active_record/callbacks/delete_callbacks.rb +2 -2
  9. data/lib/thinking_sphinx/active_record/callbacks/update_callbacks.rb +1 -1
  10. data/lib/thinking_sphinx/active_record/field.rb +5 -0
  11. data/lib/thinking_sphinx/active_record/index.rb +10 -2
  12. data/lib/thinking_sphinx/active_record/interpreter.rb +9 -0
  13. data/lib/thinking_sphinx/active_record/property.rb +4 -0
  14. data/lib/thinking_sphinx/active_record/property_query.rb +112 -0
  15. data/lib/thinking_sphinx/active_record/sql_source.rb +10 -8
  16. data/lib/thinking_sphinx/active_record/sql_source/template.rb +3 -1
  17. data/lib/thinking_sphinx/configuration.rb +21 -24
  18. data/lib/thinking_sphinx/connection.rb +71 -0
  19. data/lib/thinking_sphinx/core.rb +1 -0
  20. data/lib/thinking_sphinx/core/field.rb +9 -0
  21. data/lib/thinking_sphinx/core/index.rb +8 -3
  22. data/lib/thinking_sphinx/deltas.rb +3 -0
  23. data/lib/thinking_sphinx/deltas/default_delta.rb +1 -1
  24. data/lib/thinking_sphinx/excerpter.rb +1 -1
  25. data/lib/thinking_sphinx/frameworks.rb +9 -0
  26. data/lib/thinking_sphinx/frameworks/plain.rb +8 -0
  27. data/lib/thinking_sphinx/frameworks/rails.rb +9 -0
  28. data/lib/thinking_sphinx/index.rb +5 -1
  29. data/lib/thinking_sphinx/real_time/callbacks/real_time_callbacks.rb +2 -2
  30. data/lib/thinking_sphinx/real_time/field.rb +2 -0
  31. data/lib/thinking_sphinx/real_time/property.rb +2 -0
  32. data/lib/thinking_sphinx/scopes.rb +6 -0
  33. data/lib/thinking_sphinx/search.rb +4 -0
  34. data/lib/thinking_sphinx/search/batch_inquirer.rb +1 -9
  35. data/lib/thinking_sphinx/search/merger.rb +3 -1
  36. data/lib/thinking_sphinx/sinatra.rb +5 -0
  37. data/lib/thinking_sphinx/test.rb +2 -2
  38. data/spec/acceptance/index_options_spec.rb +87 -0
  39. data/spec/acceptance/searching_within_a_model_spec.rb +7 -0
  40. data/spec/acceptance/specifying_sql_spec.rb +277 -0
  41. data/spec/acceptance/support/sphinx_controller.rb +4 -3
  42. data/spec/fixtures/database.yml +4 -0
  43. data/spec/internal/app/indices/admin_person_index.rb +3 -0
  44. data/spec/internal/app/models/admin/person.rb +3 -0
  45. data/spec/internal/app/models/book.rb +2 -0
  46. data/spec/internal/app/models/genre.rb +3 -0
  47. data/spec/internal/db/schema.rb +14 -0
  48. data/spec/thinking_sphinx/active_record/base_spec.rb +20 -14
  49. data/spec/thinking_sphinx/active_record/callbacks/delete_callbacks_spec.rb +6 -5
  50. data/spec/thinking_sphinx/active_record/callbacks/update_callbacks_spec.rb +6 -5
  51. data/spec/thinking_sphinx/active_record/index_spec.rb +1 -1
  52. data/spec/thinking_sphinx/active_record/sql_source_spec.rb +35 -27
  53. data/spec/thinking_sphinx/configuration_spec.rb +8 -45
  54. data/spec/thinking_sphinx/deltas/default_delta_spec.rb +4 -5
  55. data/spec/thinking_sphinx/deltas_spec.rb +6 -0
  56. data/spec/thinking_sphinx/excerpter_spec.rb +1 -2
  57. data/spec/thinking_sphinx/index_spec.rb +23 -10
  58. data/spec/thinking_sphinx/real_time/callbacks/real_time_callbacks_spec.rb +4 -4
  59. data/spec/thinking_sphinx/scopes_spec.rb +7 -0
  60. data/thinking-sphinx.gemspec +2 -3
  61. metadata +66 -26
@@ -5,14 +5,14 @@ describe ThinkingSphinx::RealTime::Callbacks::RealTimeCallbacks do
5
5
  ThinkingSphinx::RealTime::Callbacks::RealTimeCallbacks.new instance
6
6
  }
7
7
  let(:instance) { double('instance', :id => 12) }
8
- let(:config) { double('config', :indices_for_references => [index],
9
- :connection => connection) }
8
+ let(:config) { double('config', :indices_for_references => [index]) }
10
9
  let(:index) { double('index', :name => 'my_index', :is_a? => true,
11
10
  :document_id_for_key => 123, :fields => [], :attributes => []) }
12
- let(:connection) { double('connection', :query => true) }
11
+ let(:connection) { double('connection', :execute => true) }
13
12
 
14
13
  before :each do
15
14
  ThinkingSphinx::Configuration.stub :instance => config
15
+ ThinkingSphinx::Connection.stub :new => connection
16
16
  end
17
17
 
18
18
  describe '.after_save' do
@@ -68,7 +68,7 @@ describe ThinkingSphinx::RealTime::Callbacks::RealTimeCallbacks do
68
68
  end
69
69
 
70
70
  it "sends the insert through to the server" do
71
- connection.should_receive(:query).with('REPLACE INTO my_index')
71
+ connection.should_receive(:execute).with('REPLACE INTO my_index')
72
72
 
73
73
  callbacks.after_save
74
74
  end
@@ -35,4 +35,11 @@ describe ThinkingSphinx::Scopes do
35
35
  model.sphinx_scopes[:foo].call.should == 27
36
36
  end
37
37
  end
38
+
39
+ describe '#default_sphinx_scope' do
40
+ it "gets and sets the default scope depending on the argument" do
41
+ model.default_sphinx_scope :foo
42
+ model.default_sphinx_scope.should == :foo
43
+ end
44
+ end
38
45
  end
@@ -3,11 +3,11 @@ $:.push File.expand_path('../lib', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'thinking-sphinx'
6
- s.version = '3.0.0.pre'
6
+ s.version = '3.0.0.rc'
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Pat Allan"]
9
9
  s.email = ["pat@freelancing-gods.com"]
10
- s.homepage = 'http://freelancing-god.github.com/ts/en'
10
+ s.homepage = 'http://pat.github.com/ts/en'
11
11
  s.summary = 'A smart wrapper over Sphinx for ActiveRecord'
12
12
  s.description = %Q{An intelligent layer for ActiveRecord (via Rails and Sinatra) for the Sphinx full-text search tool.}
13
13
 
@@ -28,6 +28,5 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency 'appraisal', '~> 0.4.0'
29
29
  # s.add_development_dependency 'combustion', '~> 0.3.1'
30
30
  s.add_development_dependency 'database_cleaner', '~> 0.7.1'
31
- s.add_runtime_dependency 'mysql2', '~> 0.3.12b4'
32
31
  s.add_development_dependency 'rspec', '~> 2.11.0'
33
32
  end
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: 3.0.0.pre
4
+ version: 3.0.0.rc
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-05 00:00:00.000000000 Z
12
+ date: 2012-12-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- requirement: &70165526203260 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: 3.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70165526203260
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 3.1.0
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: builder
27
- requirement: &70165526202760 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: 2.1.2
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70165526202760
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 2.1.2
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: middleware
38
- requirement: &70165526202300 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: 0.1.0
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *70165526202300
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.1.0
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: riddle
49
- requirement: &70165526201840 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: 1.5.3
55
70
  type: :runtime
56
71
  prerelease: false
57
- version_requirements: *70165526201840
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 1.5.3
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: appraisal
60
- requirement: &70165526201380 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ~>
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: 0.4.0
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *70165526201380
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 0.4.0
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: database_cleaner
71
- requirement: &70165526200920 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ~>
@@ -76,21 +101,15 @@ dependencies:
76
101
  version: 0.7.1
77
102
  type: :development
78
103
  prerelease: false
79
- version_requirements: *70165526200920
80
- - !ruby/object:Gem::Dependency
81
- name: mysql2
82
- requirement: &70165526200460 !ruby/object:Gem::Requirement
104
+ version_requirements: !ruby/object:Gem::Requirement
83
105
  none: false
84
106
  requirements:
85
107
  - - ~>
86
108
  - !ruby/object:Gem::Version
87
- version: 0.3.12b4
88
- type: :runtime
89
- prerelease: false
90
- version_requirements: *70165526200460
109
+ version: 0.7.1
91
110
  - !ruby/object:Gem::Dependency
92
111
  name: rspec
93
- requirement: &70165526200000 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
94
113
  none: false
95
114
  requirements:
96
115
  - - ~>
@@ -98,7 +117,12 @@ dependencies:
98
117
  version: 2.11.0
99
118
  type: :development
100
119
  prerelease: false
101
- version_requirements: *70165526200000
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 2.11.0
102
126
  description: An intelligent layer for ActiveRecord (via Rails and Sinatra) for the
103
127
  Sphinx full-text search tool.
104
128
  email:
@@ -142,6 +166,7 @@ files:
142
166
  - lib/thinking_sphinx/active_record/interpreter.rb
143
167
  - lib/thinking_sphinx/active_record/log_subscriber.rb
144
168
  - lib/thinking_sphinx/active_record/property.rb
169
+ - lib/thinking_sphinx/active_record/property_query.rb
145
170
  - lib/thinking_sphinx/active_record/property_sql_presenter.rb
146
171
  - lib/thinking_sphinx/active_record/sql_builder.rb
147
172
  - lib/thinking_sphinx/active_record/sql_source.rb
@@ -151,7 +176,9 @@ files:
151
176
  - lib/thinking_sphinx/configuration.rb
152
177
  - lib/thinking_sphinx/configuration/consistent_ids.rb
153
178
  - lib/thinking_sphinx/configuration/defaults.rb
179
+ - lib/thinking_sphinx/connection.rb
154
180
  - lib/thinking_sphinx/core.rb
181
+ - lib/thinking_sphinx/core/field.rb
155
182
  - lib/thinking_sphinx/core/index.rb
156
183
  - lib/thinking_sphinx/core/interpreter.rb
157
184
  - lib/thinking_sphinx/deltas.rb
@@ -159,6 +186,9 @@ files:
159
186
  - lib/thinking_sphinx/excerpter.rb
160
187
  - lib/thinking_sphinx/facet.rb
161
188
  - lib/thinking_sphinx/facet_search.rb
189
+ - lib/thinking_sphinx/frameworks.rb
190
+ - lib/thinking_sphinx/frameworks/plain.rb
191
+ - lib/thinking_sphinx/frameworks/rails.rb
162
192
  - lib/thinking_sphinx/index.rb
163
193
  - lib/thinking_sphinx/index_set.rb
164
194
  - lib/thinking_sphinx/masks.rb
@@ -200,6 +230,7 @@ files:
200
230
  - lib/thinking_sphinx/search/query.rb
201
231
  - lib/thinking_sphinx/search/stale_ids_exception.rb
202
232
  - lib/thinking_sphinx/search/translator.rb
233
+ - lib/thinking_sphinx/sinatra.rb
203
234
  - lib/thinking_sphinx/tasks.rb
204
235
  - lib/thinking_sphinx/test.rb
205
236
  - sketchpad.rb
@@ -212,6 +243,7 @@ files:
212
243
  - spec/acceptance/facets_spec.rb
213
244
  - spec/acceptance/geosearching_spec.rb
214
245
  - spec/acceptance/grouping_by_attributes_spec.rb
246
+ - spec/acceptance/index_options_spec.rb
215
247
  - spec/acceptance/paginating_search_results_spec.rb
216
248
  - spec/acceptance/remove_deleted_records_spec.rb
217
249
  - spec/acceptance/search_counts_spec.rb
@@ -230,7 +262,9 @@ files:
230
262
  - spec/acceptance/support/sphinx_controller.rb
231
263
  - spec/acceptance/support/sphinx_helpers.rb
232
264
  - spec/acceptance/suspended_deltas_spec.rb
265
+ - spec/fixtures/database.yml
233
266
  - spec/internal/.gitignore
267
+ - spec/internal/app/indices/admin_person_index.rb
234
268
  - spec/internal/app/indices/animal_index.rb
235
269
  - spec/internal/app/indices/article_index.rb
236
270
  - spec/internal/app/indices/book_index.rb
@@ -238,6 +272,7 @@ files:
238
272
  - spec/internal/app/indices/product_index.rb
239
273
  - spec/internal/app/indices/tee_index.rb
240
274
  - spec/internal/app/indices/user_index.rb
275
+ - spec/internal/app/models/admin/person.rb
241
276
  - spec/internal/app/models/animal.rb
242
277
  - spec/internal/app/models/article.rb
243
278
  - spec/internal/app/models/bird.rb
@@ -245,6 +280,7 @@ files:
245
280
  - spec/internal/app/models/city.rb
246
281
  - spec/internal/app/models/colour.rb
247
282
  - spec/internal/app/models/flightless_bird.rb
283
+ - spec/internal/app/models/genre.rb
248
284
  - spec/internal/app/models/mammal.rb
249
285
  - spec/internal/app/models/product.rb
250
286
  - spec/internal/app/models/tag.rb
@@ -307,7 +343,7 @@ files:
307
343
  - spec/thinking_sphinx/search_spec.rb
308
344
  - spec/thinking_sphinx_spec.rb
309
345
  - thinking-sphinx.gemspec
310
- homepage: http://freelancing-god.github.com/ts/en
346
+ homepage: http://pat.github.com/ts/en
311
347
  licenses: []
312
348
  post_install_message:
313
349
  rdoc_options: []
@@ -327,7 +363,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
327
363
  version: 1.3.1
328
364
  requirements: []
329
365
  rubyforge_project: thinking-sphinx
330
- rubygems_version: 1.8.16
366
+ rubygems_version: 1.8.23
331
367
  signing_key:
332
368
  specification_version: 3
333
369
  summary: A smart wrapper over Sphinx for ActiveRecord
@@ -341,6 +377,7 @@ test_files:
341
377
  - spec/acceptance/facets_spec.rb
342
378
  - spec/acceptance/geosearching_spec.rb
343
379
  - spec/acceptance/grouping_by_attributes_spec.rb
380
+ - spec/acceptance/index_options_spec.rb
344
381
  - spec/acceptance/paginating_search_results_spec.rb
345
382
  - spec/acceptance/remove_deleted_records_spec.rb
346
383
  - spec/acceptance/search_counts_spec.rb
@@ -359,7 +396,9 @@ test_files:
359
396
  - spec/acceptance/support/sphinx_controller.rb
360
397
  - spec/acceptance/support/sphinx_helpers.rb
361
398
  - spec/acceptance/suspended_deltas_spec.rb
399
+ - spec/fixtures/database.yml
362
400
  - spec/internal/.gitignore
401
+ - spec/internal/app/indices/admin_person_index.rb
363
402
  - spec/internal/app/indices/animal_index.rb
364
403
  - spec/internal/app/indices/article_index.rb
365
404
  - spec/internal/app/indices/book_index.rb
@@ -367,6 +406,7 @@ test_files:
367
406
  - spec/internal/app/indices/product_index.rb
368
407
  - spec/internal/app/indices/tee_index.rb
369
408
  - spec/internal/app/indices/user_index.rb
409
+ - spec/internal/app/models/admin/person.rb
370
410
  - spec/internal/app/models/animal.rb
371
411
  - spec/internal/app/models/article.rb
372
412
  - spec/internal/app/models/bird.rb
@@ -374,6 +414,7 @@ test_files:
374
414
  - spec/internal/app/models/city.rb
375
415
  - spec/internal/app/models/colour.rb
376
416
  - spec/internal/app/models/flightless_bird.rb
417
+ - spec/internal/app/models/genre.rb
377
418
  - spec/internal/app/models/mammal.rb
378
419
  - spec/internal/app/models/product.rb
379
420
  - spec/internal/app/models/tag.rb
@@ -435,4 +476,3 @@ test_files:
435
476
  - spec/thinking_sphinx/search/query_spec.rb
436
477
  - spec/thinking_sphinx/search_spec.rb
437
478
  - spec/thinking_sphinx_spec.rb
438
- has_rdoc: