thinking-sphinx 2.0.0.rc2 → 2.0.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 (40) hide show
  1. data/README.textile +6 -0
  2. data/VERSION +1 -1
  3. data/features/excerpts.feature +8 -0
  4. data/features/field_sorting.feature +18 -0
  5. data/features/searching_across_models.feature +1 -1
  6. data/features/searching_by_model.feature +0 -7
  7. data/features/sphinx_scopes.feature +18 -0
  8. data/features/step_definitions/common_steps.rb +4 -0
  9. data/features/step_definitions/search_steps.rb +5 -0
  10. data/features/support/env.rb +4 -5
  11. data/features/thinking_sphinx/db/fixtures/people.rb +1 -1
  12. data/features/thinking_sphinx/models/alpha.rb +1 -0
  13. data/features/thinking_sphinx/models/andrew.rb +17 -0
  14. data/features/thinking_sphinx/models/person.rb +2 -1
  15. data/lib/thinking_sphinx.rb +3 -0
  16. data/lib/thinking_sphinx/active_record.rb +1 -1
  17. data/lib/thinking_sphinx/active_record/scopes.rb +7 -0
  18. data/lib/thinking_sphinx/adapters/abstract_adapter.rb +38 -8
  19. data/lib/thinking_sphinx/adapters/postgresql_adapter.rb +6 -2
  20. data/lib/thinking_sphinx/association.rb +19 -14
  21. data/lib/thinking_sphinx/attribute.rb +5 -0
  22. data/lib/thinking_sphinx/auto_version.rb +2 -0
  23. data/lib/thinking_sphinx/bundled_search.rb +44 -0
  24. data/lib/thinking_sphinx/configuration.rb +14 -10
  25. data/lib/thinking_sphinx/context.rb +4 -2
  26. data/lib/thinking_sphinx/property.rb +1 -0
  27. data/lib/thinking_sphinx/railtie.rb +2 -2
  28. data/lib/thinking_sphinx/search.rb +74 -48
  29. data/lib/thinking_sphinx/source/sql.rb +1 -1
  30. data/lib/thinking_sphinx/tasks.rb +7 -0
  31. data/spec/thinking_sphinx/active_record/scopes_spec.rb +2 -3
  32. data/spec/thinking_sphinx/adapters/abstract_adapter_spec.rb +134 -0
  33. data/spec/thinking_sphinx/association_spec.rb +1 -24
  34. data/spec/thinking_sphinx/auto_version_spec.rb +8 -0
  35. data/spec/thinking_sphinx/configuration_spec.rb +11 -4
  36. data/spec/thinking_sphinx/context_spec.rb +3 -2
  37. data/spec/thinking_sphinx/search_spec.rb +67 -25
  38. data/tasks/distribution.rb +0 -6
  39. data/tasks/testing.rb +25 -15
  40. metadata +279 -67
@@ -13,7 +13,7 @@ describe ThinkingSphinx::Association do
13
13
  :name => 'polly',
14
14
  :active_record => 'AR'
15
15
  )
16
- @non_poly_reflection = stub('reflection')
16
+ @non_poly_reflection = stub('reflection', :name => 'non_polly')
17
17
 
18
18
  Person.stub!(:reflect_on_association => @normal_reflection)
19
19
  ThinkingSphinx::Association.stub!(
@@ -110,29 +110,6 @@ describe ThinkingSphinx::Association do
110
110
  end
111
111
  end
112
112
 
113
- describe '#to_sql' do
114
- before :each do
115
- @reflection = stub('reflection', :klass => Person)
116
- @association = ThinkingSphinx::Association.new(nil, @reflection)
117
- @parent = stub('parent', :aliased_table_name => "ALIAS TABLE NAME")
118
- @join = stub('join assoc',
119
- :association_join => "full association join SQL",
120
- :parent => @parent
121
- )
122
- @association.join = @join
123
- end
124
-
125
- it "should return the join's association join value" do
126
- @association.to_sql.should == "full association join SQL"
127
- end
128
-
129
- it "should replace ::ts_join_alias:: with the aliased table name" do
130
- @join.stub!(:association_join => "text with ::ts_join_alias:: gone")
131
-
132
- @association.to_sql.should == "text with `ALIAS TABLE NAME` gone"
133
- end
134
- end
135
-
136
113
  describe '#is_many?' do
137
114
  before :each do
138
115
  @parent = stub('assoc', :is_many? => :parent_is_many)
@@ -22,6 +22,14 @@ describe ThinkingSphinx::AutoVersion do
22
22
  ThinkingSphinx::AutoVersion.detect
23
23
  end
24
24
 
25
+ it "should require 1.10-beta if that is the detected version" do
26
+ ThinkingSphinx::AutoVersion.should_receive(:require).
27
+ with('riddle/1.10')
28
+
29
+ @config.stub!(:version => '1.10-beta')
30
+ ThinkingSphinx::AutoVersion.detect
31
+ end
32
+
25
33
  it "should output a warning if the detected version is something else" do
26
34
  STDERR.should_receive(:puts)
27
35
 
@@ -107,6 +107,8 @@ describe ThinkingSphinx::Configuration do
107
107
  config.app_root = "/here/somewhere"
108
108
  end
109
109
  ThinkingSphinx::Configuration.instance.app_root.should == "/here/somewhere"
110
+
111
+ ThinkingSphinx::Configuration.instance.reset
110
112
  end
111
113
  end
112
114
 
@@ -123,9 +125,9 @@ describe ThinkingSphinx::Configuration do
123
125
  }
124
126
 
125
127
  open("#{Rails.root}/config/sphinx.yml", "w") do |f|
126
- f.write YAML.dump(@settings)
128
+ f.write YAML.dump(@settings)
127
129
  end
128
-
130
+
129
131
  ThinkingSphinx::Configuration.instance.send(:parse_config)
130
132
  ThinkingSphinx::Configuration.instance.bin_path.should match(/\/$/)
131
133
 
@@ -186,7 +188,7 @@ describe ThinkingSphinx::Configuration do
186
188
  config.source_options.delete option.to_sym
187
189
  end
188
190
 
189
- config.source_options[:sql_query_pre] = nil
191
+ config.source_options[:sql_query_pre] = []
190
192
  end
191
193
 
192
194
  it "should not blow away delta or utf options if sql pre is specified in config" do
@@ -200,7 +202,7 @@ describe ThinkingSphinx::Configuration do
200
202
  file.should match(/sql_query_pre = a pre query\n\s*sql_query_pre = UPDATE `\w+` SET `delta` = 0 WHERE `delta` = 1/im)
201
203
  file.should match(/sql_query_pre = a pre query\n\s*sql_query_pre = \n/im)
202
204
 
203
- config.source_options[:sql_query_pre] = nil
205
+ config.source_options[:sql_query_pre] = []
204
206
  end
205
207
 
206
208
  it "should set any explicit prefixed or infixed fields" do
@@ -228,6 +230,7 @@ describe ThinkingSphinx::Configuration do
228
230
  @config.address = 'domain.url'
229
231
  @config.port = 3333
230
232
  @config.configuration.searchd.max_matches = 100
233
+ @config.timeout = 1
231
234
  end
232
235
 
233
236
  it "should return an instance of Riddle::Client" do
@@ -245,6 +248,10 @@ describe ThinkingSphinx::Configuration do
245
248
  it "should use the configuration max matches" do
246
249
  @config.client.max_matches.should == 100
247
250
  end
251
+
252
+ it "should use the configuration timeout" do
253
+ @config.client.timeout.should == 1
254
+ end
248
255
  end
249
256
 
250
257
  describe '#models_by_crc' do
@@ -53,8 +53,9 @@ describe ThinkingSphinx::Context do
53
53
 
54
54
  it "should catch database errors with a warning" do
55
55
  @class_name.should_receive(:constantize).and_raise(Mysql::Error)
56
- STDERR.should_receive(:puts).with('Warning: Error loading a.rb')
57
-
56
+ STDERR.stub!(:puts => '')
57
+ STDERR.should_receive(:puts).with('Warning: Error loading a.rb:')
58
+
58
59
  lambda {
59
60
  @context.prepare
60
61
  }.should_not raise_error
@@ -218,6 +218,34 @@ describe ThinkingSphinx::Search do
218
218
  ThinkingSphinx::Search.new(:classes => [Alpha, Beta]).first
219
219
  end
220
220
 
221
+ it "should restrict includes to the relevant classes" do
222
+ Alpha.should_receive(:find) do |type, options|
223
+ options[:include].should == [:betas]
224
+ [@alpha_a, @alpha_b]
225
+ end
226
+
227
+ Beta.should_receive(:find) do |type, options|
228
+ options[:include].should == [:gammas]
229
+ [@beta_a, @beta_b]
230
+ end
231
+
232
+ ThinkingSphinx::Search.new(:include => [:betas, :gammas]).first
233
+ end
234
+
235
+ it "should restrict single includes to the relevant classes" do
236
+ Alpha.should_receive(:find) do |type, options|
237
+ options[:include].should == :betas
238
+ [@alpha_a, @alpha_b]
239
+ end
240
+
241
+ Beta.should_receive(:find) do |type, options|
242
+ options[:include].should be_nil
243
+ [@beta_a, @beta_b]
244
+ end
245
+
246
+ ThinkingSphinx::Search.new(:include => :betas).first
247
+ end
248
+
221
249
  describe 'query' do
222
250
  it "should concatenate arguments with spaces" do
223
251
  @client.should_receive(:query) do |query, index, comment|
@@ -276,6 +304,32 @@ describe ThinkingSphinx::Search do
276
304
  'foo@bar.com -foo-bar', :star => /[\w@.-]+/u
277
305
  ).first
278
306
  end
307
+
308
+ it "should ignore multi-field limitations" do
309
+ @client.should_receive(:query) do |query, index, comment|
310
+ query.should == '@(foo,bar) *baz*'
311
+ end
312
+
313
+ ThinkingSphinx::Search.new('@(foo,bar) baz', :star => true).first
314
+ end
315
+
316
+ it "should ignore multi-field limitations with spaces" do
317
+ @client.should_receive(:query) do |query, index, comment|
318
+ query.should == '@(foo bar) *baz*'
319
+ end
320
+
321
+ ThinkingSphinx::Search.new('@(foo bar) baz', :star => true).first
322
+ end
323
+
324
+ it "should ignore multi-field limitations in the middle of queries" do
325
+ @client.should_receive(:query) do |query, index, comment|
326
+ query.should == '*baz* @foo *bar* @(foo,bar) *baz*'
327
+ end
328
+
329
+ ThinkingSphinx::Search.new(
330
+ 'baz @foo bar @(foo,bar) baz', :star => true
331
+ ).first
332
+ end
279
333
  end
280
334
 
281
335
  describe 'comment' do
@@ -510,31 +564,6 @@ describe ThinkingSphinx::Search do
510
564
  filter.attribute.should == 'sphinx_internal_id'
511
565
  filter.exclude?.should be_true
512
566
  end
513
-
514
- describe 'in :conditions' do
515
- it "should add as filters for known attributes in :conditions option" do
516
- ThinkingSphinx::Search.new('general',
517
- :conditions => {:word => 'specific', :lat => 1.5},
518
- :classes => [Alpha]
519
- ).first
520
-
521
- filter = @client.filters.last
522
- filter.values.should == [1.5]
523
- filter.attribute.should == 'lat'
524
- filter.exclude?.should be_false
525
- end
526
-
527
- it "should not add the filter to the query string" do
528
- @client.should_receive(:query) do |query, index, comment|
529
- query.should == 'general @word specific'
530
- end
531
-
532
- ThinkingSphinx::Search.new('general',
533
- :conditions => {:word => 'specific', :lat => 1.5},
534
- :classes => [Alpha]
535
- ).first
536
- end
537
- end
538
567
  end
539
568
 
540
569
  describe 'sort mode' do
@@ -1202,6 +1231,19 @@ describe ThinkingSphinx::Search do
1202
1231
  @search.freeze.should be_a(ThinkingSphinx::Search)
1203
1232
  end
1204
1233
  end
1234
+
1235
+ describe '#client' do
1236
+ let(:client) { Riddle::Client.new }
1237
+ it "should respect the client in options" do
1238
+ search = ThinkingSphinx::Search.new :client => client
1239
+ search.client.should == client
1240
+ end
1241
+
1242
+ it "should get a new client from the configuration singleton by default" do
1243
+ ThinkingSphinx::Configuration.instance.stub!(:client => client)
1244
+ ThinkingSphinx::Search.new.client.should == client
1245
+ end
1246
+ end
1205
1247
  end
1206
1248
 
1207
1249
  describe ThinkingSphinx::Search, "playing nice with Search model" do
@@ -1,6 +1,3 @@
1
- require 'yard'
2
- require 'jeweler'
3
-
4
1
  desc 'Generate documentation'
5
2
  YARD::Rake::YardocTask.new
6
3
 
@@ -28,9 +25,6 @@ Jeweler::Tasks.new do |gem|
28
25
  "spec/**/*_spec.rb"
29
26
  ]
30
27
 
31
- gem.add_dependency 'activerecord', '>= 3.0.0.rc'
32
- gem.add_dependency 'riddle', '>= 1.0.12'
33
-
34
28
  gem.post_install_message = <<-MESSAGE
35
29
  If you're upgrading, you should read this:
36
30
  http://freelancing-god.github.com/ts/en/upgrading.html
@@ -31,35 +31,45 @@ namespace :features do
31
31
  task :postgresql => :check_dependencies
32
32
  end
33
33
 
34
- desc "Generate RCov reports"
35
- RSpec::Core::RakeTask.new(:rcov) do |t|
36
- t.pattern = 'spec/**/*_spec.rb'
37
- t.rcov = true
38
- t.rcov_opts = [
39
- '--exclude', 'spec',
40
- '--exclude', 'gems',
41
- '--exclude', 'riddle',
42
- '--exclude', 'ruby'
43
- ]
44
- end
45
-
46
34
  namespace :rcov do
35
+ desc "Generate RCov reports"
36
+ RSpec::Core::RakeTask.new(:rspec) do |t|
37
+ t.pattern = 'spec/**/*_spec.rb'
38
+ t.rcov = true
39
+ t.rcov_opts = [
40
+ '--exclude', 'spec',
41
+ '--exclude', 'gems',
42
+ '--exclude', 'riddle',
43
+ '--exclude', 'ruby',
44
+ '--aggregate coverage.data'
45
+ ]
46
+ end
47
+
47
48
  def add_task(name, description)
48
49
  Cucumber::Rake::Task.new(name, description) do |t|
49
- t.cucumber_opts = "--format pretty"
50
- t.profile = name
50
+ t.cucumber_opts = "--format pretty features/*.feature DATABASE=#{name}"
51
51
  t.rcov = true
52
52
  t.rcov_opts = [
53
53
  '--exclude', 'spec',
54
54
  '--exclude', 'gems',
55
55
  '--exclude', 'riddle',
56
- '--exclude', 'features'
56
+ '--exclude', 'features',
57
+ '--aggregate coverage.data'
57
58
  ]
58
59
  end
59
60
  end
60
61
 
61
62
  add_task :mysql, "Run feature-set against MySQL with rcov"
62
63
  add_task :postgresql, "Run feature-set against PostgreSQL with rcov"
64
+
65
+ task :all do
66
+ rm 'coverage.data' if File.exist?('coverage.data')
67
+ rm 'rerun.txt' if File.exist?('rerun.txt')
68
+
69
+ Rake::Task['rcov:rspec'].invoke
70
+ Rake::Task['rcov:mysql'].invoke
71
+ Rake::Task['rcov:postgresql'].invoke
72
+ end
63
73
  end
64
74
 
65
75
  desc "Build cucumber.yml file"
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thinking-sphinx
3
3
  version: !ruby/object:Gem::Version
4
- hash: 977940591
5
- prerelease: true
4
+ hash: 15
5
+ prerelease: false
6
6
  segments:
7
7
  - 2
8
8
  - 0
9
9
  - 0
10
- - rc2
11
- version: 2.0.0.rc2
10
+ version: 2.0.0
12
11
  platform: ruby
13
12
  authors:
14
13
  - Pat Allan
@@ -16,42 +15,250 @@ autorequire:
16
15
  bindir: bin
17
16
  cert_chain: []
18
17
 
19
- date: 2010-08-23 00:00:00 +08:00
18
+ date: 2010-11-15 00:00:00 +08:00
20
19
  default_executable:
21
20
  dependencies:
22
21
  - !ruby/object:Gem::Dependency
23
- name: activerecord
22
+ type: :runtime
24
23
  prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
24
+ name: activerecord
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
26
26
  none: false
27
27
  requirements:
28
28
  - - ">="
29
29
  - !ruby/object:Gem::Version
30
- hash: 7712042
30
+ hash: 7
31
31
  segments:
32
32
  - 3
33
33
  - 0
34
34
  - 0
35
- - rc
36
- version: 3.0.0.rc
37
- type: :runtime
38
- version_requirements: *id001
35
+ version: 3.0.0
36
+ requirement: *id001
39
37
  - !ruby/object:Gem::Dependency
40
- name: riddle
38
+ type: :runtime
41
39
  prerelease: false
42
- requirement: &id002 !ruby/object:Gem::Requirement
40
+ name: riddle
41
+ version_requirements: &id002 !ruby/object:Gem::Requirement
43
42
  none: false
44
43
  requirements:
45
44
  - - ">="
46
45
  - !ruby/object:Gem::Version
47
- hash: 15
46
+ hash: 31
48
47
  segments:
49
48
  - 1
49
+ - 2
50
50
  - 0
51
- - 12
52
- version: 1.0.12
53
- type: :runtime
54
- version_requirements: *id002
51
+ version: 1.2.0
52
+ requirement: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ type: :development
55
+ prerelease: false
56
+ name: mysql
57
+ version_requirements: &id003 !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - "="
61
+ - !ruby/object:Gem::Version
62
+ hash: 45
63
+ segments:
64
+ - 2
65
+ - 8
66
+ - 1
67
+ version: 2.8.1
68
+ requirement: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ type: :development
71
+ prerelease: false
72
+ name: pg
73
+ version_requirements: &id004 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - "="
77
+ - !ruby/object:Gem::Version
78
+ hash: 59
79
+ segments:
80
+ - 0
81
+ - 9
82
+ - 0
83
+ version: 0.9.0
84
+ requirement: *id004
85
+ - !ruby/object:Gem::Dependency
86
+ type: :development
87
+ prerelease: false
88
+ name: jeweler
89
+ version_requirements: &id005 !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - "="
93
+ - !ruby/object:Gem::Version
94
+ hash: -1876988220
95
+ segments:
96
+ - 1
97
+ - 5
98
+ - 0
99
+ - pre5
100
+ version: 1.5.0.pre5
101
+ requirement: *id005
102
+ - !ruby/object:Gem::Dependency
103
+ type: :development
104
+ prerelease: false
105
+ name: yard
106
+ version_requirements: &id006 !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - "="
110
+ - !ruby/object:Gem::Version
111
+ hash: 5
112
+ segments:
113
+ - 0
114
+ - 6
115
+ - 1
116
+ version: 0.6.1
117
+ requirement: *id006
118
+ - !ruby/object:Gem::Dependency
119
+ type: :development
120
+ prerelease: false
121
+ name: rspec
122
+ version_requirements: &id007 !ruby/object:Gem::Requirement
123
+ none: false
124
+ requirements:
125
+ - - "="
126
+ - !ruby/object:Gem::Version
127
+ hash: 13
128
+ segments:
129
+ - 2
130
+ - 0
131
+ - 1
132
+ version: 2.0.1
133
+ requirement: *id007
134
+ - !ruby/object:Gem::Dependency
135
+ type: :development
136
+ prerelease: false
137
+ name: rspec-core
138
+ version_requirements: &id008 !ruby/object:Gem::Requirement
139
+ none: false
140
+ requirements:
141
+ - - "="
142
+ - !ruby/object:Gem::Version
143
+ hash: 13
144
+ segments:
145
+ - 2
146
+ - 0
147
+ - 1
148
+ version: 2.0.1
149
+ requirement: *id008
150
+ - !ruby/object:Gem::Dependency
151
+ type: :development
152
+ prerelease: false
153
+ name: rspec-expectations
154
+ version_requirements: &id009 !ruby/object:Gem::Requirement
155
+ none: false
156
+ requirements:
157
+ - - "="
158
+ - !ruby/object:Gem::Version
159
+ hash: 13
160
+ segments:
161
+ - 2
162
+ - 0
163
+ - 1
164
+ version: 2.0.1
165
+ requirement: *id009
166
+ - !ruby/object:Gem::Dependency
167
+ type: :development
168
+ prerelease: false
169
+ name: rspec-mocks
170
+ version_requirements: &id010 !ruby/object:Gem::Requirement
171
+ none: false
172
+ requirements:
173
+ - - "="
174
+ - !ruby/object:Gem::Version
175
+ hash: 13
176
+ segments:
177
+ - 2
178
+ - 0
179
+ - 1
180
+ version: 2.0.1
181
+ requirement: *id010
182
+ - !ruby/object:Gem::Dependency
183
+ type: :development
184
+ prerelease: false
185
+ name: rcov
186
+ version_requirements: &id011 !ruby/object:Gem::Requirement
187
+ none: false
188
+ requirements:
189
+ - - "="
190
+ - !ruby/object:Gem::Version
191
+ hash: 43
192
+ segments:
193
+ - 0
194
+ - 9
195
+ - 8
196
+ version: 0.9.8
197
+ requirement: *id011
198
+ - !ruby/object:Gem::Dependency
199
+ type: :development
200
+ prerelease: false
201
+ name: cucumber
202
+ version_requirements: &id012 !ruby/object:Gem::Requirement
203
+ none: false
204
+ requirements:
205
+ - - "="
206
+ - !ruby/object:Gem::Version
207
+ hash: 51
208
+ segments:
209
+ - 0
210
+ - 9
211
+ - 4
212
+ version: 0.9.4
213
+ requirement: *id012
214
+ - !ruby/object:Gem::Dependency
215
+ type: :development
216
+ prerelease: false
217
+ name: will_paginate
218
+ version_requirements: &id013 !ruby/object:Gem::Requirement
219
+ none: false
220
+ requirements:
221
+ - - "="
222
+ - !ruby/object:Gem::Version
223
+ hash: 961915916
224
+ segments:
225
+ - 3
226
+ - 0
227
+ - pre
228
+ version: 3.0.pre
229
+ requirement: *id013
230
+ - !ruby/object:Gem::Dependency
231
+ type: :development
232
+ prerelease: false
233
+ name: ginger
234
+ version_requirements: &id014 !ruby/object:Gem::Requirement
235
+ none: false
236
+ requirements:
237
+ - - "="
238
+ - !ruby/object:Gem::Version
239
+ hash: 31
240
+ segments:
241
+ - 1
242
+ - 2
243
+ - 0
244
+ version: 1.2.0
245
+ requirement: *id014
246
+ - !ruby/object:Gem::Dependency
247
+ type: :development
248
+ prerelease: false
249
+ name: faker
250
+ version_requirements: &id015 !ruby/object:Gem::Requirement
251
+ none: false
252
+ requirements:
253
+ - - "="
254
+ - !ruby/object:Gem::Version
255
+ hash: 17
256
+ segments:
257
+ - 0
258
+ - 3
259
+ - 1
260
+ version: 0.3.1
261
+ requirement: *id015
55
262
  description: A concise and easy-to-use Ruby library that connects ActiveRecord to the Sphinx search daemon, managing configuration, indexing and searching.
56
263
  email: pat@freelancing-gods.com
57
264
  executables: []
@@ -79,6 +286,7 @@ files:
79
286
  - lib/thinking_sphinx/association.rb
80
287
  - lib/thinking_sphinx/attribute.rb
81
288
  - lib/thinking_sphinx/auto_version.rb
289
+ - lib/thinking_sphinx/bundled_search.rb
82
290
  - lib/thinking_sphinx/class_facet.rb
83
291
  - lib/thinking_sphinx/configuration.rb
84
292
  - lib/thinking_sphinx/context.rb
@@ -106,6 +314,25 @@ files:
106
314
  - lib/thinking_sphinx/test.rb
107
315
  - tasks/distribution.rb
108
316
  - tasks/testing.rb
317
+ - features/abstract_inheritance.feature
318
+ - features/alternate_primary_key.feature
319
+ - features/attribute_transformation.feature
320
+ - features/attribute_updates.feature
321
+ - features/deleting_instances.feature
322
+ - features/direct_attributes.feature
323
+ - features/excerpts.feature
324
+ - features/extensible_delta_indexing.feature
325
+ - features/facets.feature
326
+ - features/facets_across_model.feature
327
+ - features/field_sorting.feature
328
+ - features/handling_edits.feature
329
+ - features/retry_stale_indexes.feature
330
+ - features/searching_across_models.feature
331
+ - features/searching_by_index.feature
332
+ - features/searching_by_model.feature
333
+ - features/searching_with_find_arguments.feature
334
+ - features/sphinx_detection.feature
335
+ - features/sphinx_scopes.feature
109
336
  - features/step_definitions/alpha_steps.rb
110
337
  - features/step_definitions/beta_steps.rb
111
338
  - features/step_definitions/common_steps.rb
@@ -116,8 +343,10 @@ files:
116
343
  - features/step_definitions/scope_steps.rb
117
344
  - features/step_definitions/search_steps.rb
118
345
  - features/step_definitions/sphinx_steps.rb
346
+ - features/sti_searching.feature
119
347
  - features/support/env.rb
120
348
  - features/support/lib/generic_delta_handler.rb
349
+ - features/thinking_sphinx/database.example.yml
121
350
  - features/thinking_sphinx/db/fixtures/alphas.rb
122
351
  - features/thinking_sphinx/db/fixtures/authors.rb
123
352
  - features/thinking_sphinx/db/fixtures/betas.rb
@@ -154,6 +383,7 @@ files:
154
383
  - features/thinking_sphinx/db/migrations/create_taggings.rb
155
384
  - features/thinking_sphinx/db/migrations/create_tags.rb
156
385
  - features/thinking_sphinx/models/alpha.rb
386
+ - features/thinking_sphinx/models/andrew.rb
157
387
  - features/thinking_sphinx/models/animal.rb
158
388
  - features/thinking_sphinx/models/author.rb
159
389
  - features/thinking_sphinx/models/beta.rb
@@ -174,30 +404,11 @@ files:
174
404
  - features/thinking_sphinx/models/robot.rb
175
405
  - features/thinking_sphinx/models/tag.rb
176
406
  - features/thinking_sphinx/models/tagging.rb
177
- - features/abstract_inheritance.feature
178
- - features/alternate_primary_key.feature
179
- - features/attribute_transformation.feature
180
- - features/attribute_updates.feature
181
- - features/deleting_instances.feature
182
- - features/direct_attributes.feature
183
- - features/excerpts.feature
184
- - features/extensible_delta_indexing.feature
185
- - features/facets.feature
186
- - features/facets_across_model.feature
187
- - features/handling_edits.feature
188
- - features/retry_stale_indexes.feature
189
- - features/searching_across_models.feature
190
- - features/searching_by_index.feature
191
- - features/searching_by_model.feature
192
- - features/searching_with_find_arguments.feature
193
- - features/sphinx_detection.feature
194
- - features/sphinx_scopes.feature
195
- - features/sti_searching.feature
196
- - features/thinking_sphinx/database.example.yml
197
407
  - spec/thinking_sphinx/active_record/delta_spec.rb
198
408
  - spec/thinking_sphinx/active_record/has_many_association_spec.rb
199
409
  - spec/thinking_sphinx/active_record/scopes_spec.rb
200
410
  - spec/thinking_sphinx/active_record_spec.rb
411
+ - spec/thinking_sphinx/adapters/abstract_adapter_spec.rb
201
412
  - spec/thinking_sphinx/association_spec.rb
202
413
  - spec/thinking_sphinx/attribute_spec.rb
203
414
  - spec/thinking_sphinx/auto_version_spec.rb
@@ -225,8 +436,8 @@ post_install_message: |+
225
436
  If you're upgrading, you should read this:
226
437
  http://freelancing-god.github.com/ts/en/upgrading.html
227
438
 
228
- rdoc_options:
229
- - --charset=UTF-8
439
+ rdoc_options: []
440
+
230
441
  require_paths:
231
442
  - lib
232
443
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -241,14 +452,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
241
452
  required_rubygems_version: !ruby/object:Gem::Requirement
242
453
  none: false
243
454
  requirements:
244
- - - ">"
455
+ - - ">="
245
456
  - !ruby/object:Gem::Version
246
- hash: 25
457
+ hash: 3
247
458
  segments:
248
- - 1
249
- - 3
250
- - 1
251
- version: 1.3.1
459
+ - 0
460
+ version: "0"
252
461
  requirements: []
253
462
 
254
463
  rubyforge_project:
@@ -257,6 +466,25 @@ signing_key:
257
466
  specification_version: 3
258
467
  summary: ActiveRecord/Rails Sphinx library
259
468
  test_files:
469
+ - features/abstract_inheritance.feature
470
+ - features/alternate_primary_key.feature
471
+ - features/attribute_transformation.feature
472
+ - features/attribute_updates.feature
473
+ - features/deleting_instances.feature
474
+ - features/direct_attributes.feature
475
+ - features/excerpts.feature
476
+ - features/extensible_delta_indexing.feature
477
+ - features/facets.feature
478
+ - features/facets_across_model.feature
479
+ - features/field_sorting.feature
480
+ - features/handling_edits.feature
481
+ - features/retry_stale_indexes.feature
482
+ - features/searching_across_models.feature
483
+ - features/searching_by_index.feature
484
+ - features/searching_by_model.feature
485
+ - features/searching_with_find_arguments.feature
486
+ - features/sphinx_detection.feature
487
+ - features/sphinx_scopes.feature
260
488
  - features/step_definitions/alpha_steps.rb
261
489
  - features/step_definitions/beta_steps.rb
262
490
  - features/step_definitions/common_steps.rb
@@ -267,8 +495,10 @@ test_files:
267
495
  - features/step_definitions/scope_steps.rb
268
496
  - features/step_definitions/search_steps.rb
269
497
  - features/step_definitions/sphinx_steps.rb
498
+ - features/sti_searching.feature
270
499
  - features/support/env.rb
271
500
  - features/support/lib/generic_delta_handler.rb
501
+ - features/thinking_sphinx/database.example.yml
272
502
  - features/thinking_sphinx/db/fixtures/alphas.rb
273
503
  - features/thinking_sphinx/db/fixtures/authors.rb
274
504
  - features/thinking_sphinx/db/fixtures/betas.rb
@@ -305,6 +535,7 @@ test_files:
305
535
  - features/thinking_sphinx/db/migrations/create_taggings.rb
306
536
  - features/thinking_sphinx/db/migrations/create_tags.rb
307
537
  - features/thinking_sphinx/models/alpha.rb
538
+ - features/thinking_sphinx/models/andrew.rb
308
539
  - features/thinking_sphinx/models/animal.rb
309
540
  - features/thinking_sphinx/models/author.rb
310
541
  - features/thinking_sphinx/models/beta.rb
@@ -325,30 +556,11 @@ test_files:
325
556
  - features/thinking_sphinx/models/robot.rb
326
557
  - features/thinking_sphinx/models/tag.rb
327
558
  - features/thinking_sphinx/models/tagging.rb
328
- - features/abstract_inheritance.feature
329
- - features/alternate_primary_key.feature
330
- - features/attribute_transformation.feature
331
- - features/attribute_updates.feature
332
- - features/deleting_instances.feature
333
- - features/direct_attributes.feature
334
- - features/excerpts.feature
335
- - features/extensible_delta_indexing.feature
336
- - features/facets.feature
337
- - features/facets_across_model.feature
338
- - features/handling_edits.feature
339
- - features/retry_stale_indexes.feature
340
- - features/searching_across_models.feature
341
- - features/searching_by_index.feature
342
- - features/searching_by_model.feature
343
- - features/searching_with_find_arguments.feature
344
- - features/sphinx_detection.feature
345
- - features/sphinx_scopes.feature
346
- - features/sti_searching.feature
347
- - features/thinking_sphinx/database.example.yml
348
559
  - spec/thinking_sphinx/active_record/delta_spec.rb
349
560
  - spec/thinking_sphinx/active_record/has_many_association_spec.rb
350
561
  - spec/thinking_sphinx/active_record/scopes_spec.rb
351
562
  - spec/thinking_sphinx/active_record_spec.rb
563
+ - spec/thinking_sphinx/adapters/abstract_adapter_spec.rb
352
564
  - spec/thinking_sphinx/association_spec.rb
353
565
  - spec/thinking_sphinx/attribute_spec.rb
354
566
  - spec/thinking_sphinx/auto_version_spec.rb