thinking-sphinx 3.0.0.pre → 3.0.0.rc

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