thinking-sphinx 2.0.0.rc2 → 2.0.0

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