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.
- data/README.textile +6 -0
- data/VERSION +1 -1
- data/features/excerpts.feature +8 -0
- data/features/field_sorting.feature +18 -0
- data/features/searching_across_models.feature +1 -1
- data/features/searching_by_model.feature +0 -7
- data/features/sphinx_scopes.feature +18 -0
- data/features/step_definitions/common_steps.rb +4 -0
- data/features/step_definitions/search_steps.rb +5 -0
- data/features/support/env.rb +4 -5
- data/features/thinking_sphinx/db/fixtures/people.rb +1 -1
- data/features/thinking_sphinx/models/alpha.rb +1 -0
- data/features/thinking_sphinx/models/andrew.rb +17 -0
- data/features/thinking_sphinx/models/person.rb +2 -1
- data/lib/thinking_sphinx.rb +3 -0
- data/lib/thinking_sphinx/active_record.rb +1 -1
- data/lib/thinking_sphinx/active_record/scopes.rb +7 -0
- data/lib/thinking_sphinx/adapters/abstract_adapter.rb +38 -8
- data/lib/thinking_sphinx/adapters/postgresql_adapter.rb +6 -2
- data/lib/thinking_sphinx/association.rb +19 -14
- data/lib/thinking_sphinx/attribute.rb +5 -0
- data/lib/thinking_sphinx/auto_version.rb +2 -0
- data/lib/thinking_sphinx/bundled_search.rb +44 -0
- data/lib/thinking_sphinx/configuration.rb +14 -10
- data/lib/thinking_sphinx/context.rb +4 -2
- data/lib/thinking_sphinx/property.rb +1 -0
- data/lib/thinking_sphinx/railtie.rb +2 -2
- data/lib/thinking_sphinx/search.rb +74 -48
- data/lib/thinking_sphinx/source/sql.rb +1 -1
- data/lib/thinking_sphinx/tasks.rb +7 -0
- data/spec/thinking_sphinx/active_record/scopes_spec.rb +2 -3
- data/spec/thinking_sphinx/adapters/abstract_adapter_spec.rb +134 -0
- data/spec/thinking_sphinx/association_spec.rb +1 -24
- data/spec/thinking_sphinx/auto_version_spec.rb +8 -0
- data/spec/thinking_sphinx/configuration_spec.rb +11 -4
- data/spec/thinking_sphinx/context_spec.rb +3 -2
- data/spec/thinking_sphinx/search_spec.rb +67 -25
- data/tasks/distribution.rb +0 -6
- data/tasks/testing.rb +25 -15
- 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
|
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] =
|
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] =
|
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.
|
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
|
data/tasks/distribution.rb
CHANGED
@@ -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
|
data/tasks/testing.rb
CHANGED
@@ -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:
|
5
|
-
prerelease:
|
4
|
+
hash: 15
|
5
|
+
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 0
|
9
9
|
- 0
|
10
|
-
|
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-
|
18
|
+
date: 2010-11-15 00:00:00 +08:00
|
20
19
|
default_executable:
|
21
20
|
dependencies:
|
22
21
|
- !ruby/object:Gem::Dependency
|
23
|
-
|
22
|
+
type: :runtime
|
24
23
|
prerelease: false
|
25
|
-
|
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:
|
30
|
+
hash: 7
|
31
31
|
segments:
|
32
32
|
- 3
|
33
33
|
- 0
|
34
34
|
- 0
|
35
|
-
|
36
|
-
|
37
|
-
type: :runtime
|
38
|
-
version_requirements: *id001
|
35
|
+
version: 3.0.0
|
36
|
+
requirement: *id001
|
39
37
|
- !ruby/object:Gem::Dependency
|
40
|
-
|
38
|
+
type: :runtime
|
41
39
|
prerelease: false
|
42
|
-
|
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:
|
46
|
+
hash: 31
|
48
47
|
segments:
|
49
48
|
- 1
|
49
|
+
- 2
|
50
50
|
- 0
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
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
|
-
|
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:
|
457
|
+
hash: 3
|
247
458
|
segments:
|
248
|
-
-
|
249
|
-
|
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
|