thinking-sphinx 2.0.11 → 2.0.12

Sign up to get free protection for your applications and to get access to all the features.
@@ -178,6 +178,12 @@ describe ThinkingSphinx::Index do
178
178
 
179
179
  index.to_riddle(0).last.local_indices.should include('beta_delta')
180
180
  end
181
+
182
+ it "should add additional local indexes if there are any" do
183
+ index = ThinkingSphinx::Index.new(Alpha)
184
+ index.additional_indices << "other_index_core"
185
+ index.to_riddle(0).last.local_indices.should include('other_index_core')
186
+ end
181
187
  end
182
188
  end
183
189
  end
@@ -32,6 +32,15 @@ describe ThinkingSphinx::Search do
32
32
  end
33
33
  end
34
34
 
35
+ describe '#==' do
36
+ it "populates the search results when checking equality" do
37
+ search = ThinkingSphinx::Search.new
38
+ search == []
39
+
40
+ search.should be_populated
41
+ end
42
+ end
43
+
35
44
  describe '#populated?' do
36
45
  before :each do
37
46
  @search = ThinkingSphinx::Search.new
@@ -215,8 +224,8 @@ describe ThinkingSphinx::Search do
215
224
  :matches => minimal_result_hashes(@alpha_a, @beta_b, @alpha_b, @beta_a),
216
225
  :fields => ["one", "two", "three", "four", "five"]
217
226
  }
218
- Alpha.stub! :find => [@alpha_a, @alpha_b]
219
- Beta.stub! :find => [@beta_a, @beta_b]
227
+ Alpha.stub! :find => [@alpha_a, @alpha_b], :unscoped => Alpha
228
+ Beta.stub! :find => [@beta_a, @beta_b], :unscoped => Beta
220
229
  end
221
230
 
222
231
  it "should issue only one select per model" do
@@ -505,7 +514,7 @@ describe ThinkingSphinx::Search do
505
514
  filter = @client.filters.last
506
515
  filter.values.should == [
507
516
  Parent.to_crc32, Admin::Person.to_crc32,
508
- Child.to_crc32, Person.to_crc32
517
+ Child.to_crc32, Teenager.to_crc32, Person.to_crc32
509
518
  ]
510
519
  filter.attribute.should == 'class_crc'
511
520
  filter.exclude?.should be_false
@@ -904,6 +913,18 @@ describe ThinkingSphinx::Search do
904
913
  end
905
914
  end
906
915
 
916
+ describe ':attributes_only option' do
917
+ it "returns the attributes as hashes with values" do
918
+ ThinkingSphinx::Search.new(
919
+ :attributes_only => true
920
+ ).first.should == {
921
+ :sphinx_internal_class => "Alpha",
922
+ :class_crc => Alpha.to_crc32,
923
+ :sphinx_internal_id => 1
924
+ }
925
+ end
926
+ end
927
+
907
928
  context 'result objects' do
908
929
  describe '#excerpts' do
909
930
  before :each do
@@ -1150,7 +1171,7 @@ describe ThinkingSphinx::Search do
1150
1171
  }
1151
1172
  }]
1152
1173
  }
1153
- Alpha.stub!(:find => [@alpha])
1174
+ Alpha.stub :find => [@alpha], :unscoped => Alpha
1154
1175
  end
1155
1176
 
1156
1177
  it "should yield the match, group and count" do
@@ -1186,7 +1207,7 @@ describe ThinkingSphinx::Search do
1186
1207
  }, :weight => 12
1187
1208
  }]
1188
1209
  }
1189
- Alpha.stub!(:find => [@alpha])
1210
+ Alpha.stub :find => [@alpha], :unscoped => Alpha
1190
1211
  end
1191
1212
 
1192
1213
  it "should yield the match and weight" do
@@ -1215,7 +1236,7 @@ describe ThinkingSphinx::Search do
1215
1236
  }, :weight => 12
1216
1237
  }]
1217
1238
  }
1218
- Alpha.stub!(:find => [@alpha])
1239
+ Alpha.stub :find => [@alpha], :unscoped => Alpha
1219
1240
 
1220
1241
  @search = ThinkingSphinx::Search.new
1221
1242
  end
@@ -85,13 +85,17 @@ describe ThinkingSphinx::Source do
85
85
  @riddle.sql_host.should == config[:host]
86
86
  @riddle.sql_port.should == config[:port]
87
87
  @riddle.sql_sock.should == config[:socket]
88
+
89
+ @riddle.mysql_ssl_ca.should == config[:sslca]
90
+ @riddle.mysql_ssl_cert.should == config[:sslcert]
91
+ @riddle.mysql_ssl_key.should == config[:sslkey]
88
92
  end
89
93
 
90
94
  it "should use a environment user if nothing else is provided" do
91
95
  Person.connection.stub!(:instance_variable_get => {
92
- :user => nil,
93
- :username => nil
94
- })
96
+ :user => nil,
97
+ :username => nil
98
+ })
95
99
  @source = ThinkingSphinx::Source.new(@index)
96
100
 
97
101
  riddle = @source.to_riddle_for_core(1, 0)
@@ -161,6 +165,16 @@ describe ThinkingSphinx::Source do
161
165
  it "should include any defined groupings" do
162
166
  @query.should match(/GROUP BY.+`first_name`/)
163
167
  end
168
+
169
+ it "should include descendants" do
170
+ index = ThinkingSphinx::Index.new(Child)
171
+ source = ThinkingSphinx::Source.new(index, :sql_range_step => 1000)
172
+ riddle = source.to_riddle_for_core(1, 0)
173
+ query = riddle.sql_query
174
+
175
+ query.should match(/WHERE.+`people`\.`type`.+'Child'.+ 'Teenager'\)/)
176
+ query.should_not match(/WHERE.+"users"."type" = 'Employee'/)
177
+ end
164
178
  end
165
179
 
166
180
  describe "#sql_query_range" do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thinking-sphinx
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 0
9
- - 11
10
- version: 2.0.11
9
+ - 12
10
+ version: 2.0.12
11
11
  platform: ruby
12
12
  authors:
13
13
  - Pat Allan
@@ -15,12 +15,11 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-01-02 00:00:00 +11:00
19
- default_executable:
18
+ date: 2012-05-14 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
- name: activerecord
23
- version_requirements: &id001 !ruby/object:Gem::Requirement
21
+ type: :runtime
22
+ requirement: &id001 !ruby/object:Gem::Requirement
24
23
  none: false
25
24
  requirements:
26
25
  - - ">="
@@ -31,28 +30,28 @@ dependencies:
31
30
  - 0
32
31
  - 3
33
32
  version: 3.0.3
34
- type: :runtime
33
+ version_requirements: *id001
35
34
  prerelease: false
36
- requirement: *id001
35
+ name: activerecord
37
36
  - !ruby/object:Gem::Dependency
38
- name: riddle
39
- version_requirements: &id002 !ruby/object:Gem::Requirement
37
+ type: :runtime
38
+ requirement: &id002 !ruby/object:Gem::Requirement
40
39
  none: false
41
40
  requirements:
42
41
  - - ">="
43
42
  - !ruby/object:Gem::Version
44
- hash: 3
43
+ hash: 7
45
44
  segments:
46
45
  - 1
47
46
  - 5
48
- - 0
49
- version: 1.5.0
50
- type: :runtime
47
+ - 2
48
+ version: 1.5.2
49
+ version_requirements: *id002
51
50
  prerelease: false
52
- requirement: *id002
51
+ name: riddle
53
52
  - !ruby/object:Gem::Dependency
54
- name: builder
55
- version_requirements: &id003 !ruby/object:Gem::Requirement
53
+ type: :runtime
54
+ requirement: &id003 !ruby/object:Gem::Requirement
56
55
  none: false
57
56
  requirements:
58
57
  - - ">="
@@ -63,12 +62,12 @@ dependencies:
63
62
  - 1
64
63
  - 2
65
64
  version: 2.1.2
66
- type: :runtime
65
+ version_requirements: *id003
67
66
  prerelease: false
68
- requirement: *id003
67
+ name: builder
69
68
  - !ruby/object:Gem::Dependency
70
- name: actionpack
71
- version_requirements: &id004 !ruby/object:Gem::Requirement
69
+ type: :development
70
+ requirement: &id004 !ruby/object:Gem::Requirement
72
71
  none: false
73
72
  requirements:
74
73
  - - ">="
@@ -79,12 +78,28 @@ dependencies:
79
78
  - 0
80
79
  - 3
81
80
  version: 3.0.3
81
+ version_requirements: *id004
82
+ prerelease: false
83
+ name: actionpack
84
+ - !ruby/object:Gem::Dependency
82
85
  type: :development
86
+ requirement: &id005 !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - "="
90
+ - !ruby/object:Gem::Version
91
+ hash: 15
92
+ segments:
93
+ - 0
94
+ - 4
95
+ - 0
96
+ version: 0.4.0
97
+ version_requirements: *id005
83
98
  prerelease: false
84
- requirement: *id004
99
+ name: appraisal
85
100
  - !ruby/object:Gem::Dependency
86
- name: cucumber
87
- version_requirements: &id005 !ruby/object:Gem::Requirement
101
+ type: :development
102
+ requirement: &id006 !ruby/object:Gem::Requirement
88
103
  none: false
89
104
  requirements:
90
105
  - - "="
@@ -95,12 +110,12 @@ dependencies:
95
110
  - 0
96
111
  - 2
97
112
  version: 1.0.2
98
- type: :development
113
+ version_requirements: *id006
99
114
  prerelease: false
100
- requirement: *id005
115
+ name: cucumber
101
116
  - !ruby/object:Gem::Dependency
102
- name: faker
103
- version_requirements: &id006 !ruby/object:Gem::Requirement
117
+ type: :development
118
+ requirement: &id007 !ruby/object:Gem::Requirement
104
119
  none: false
105
120
  requirements:
106
121
  - - "="
@@ -111,28 +126,12 @@ dependencies:
111
126
  - 3
112
127
  - 1
113
128
  version: 0.3.1
114
- type: :development
129
+ version_requirements: *id007
115
130
  prerelease: false
116
- requirement: *id006
131
+ name: faker
117
132
  - !ruby/object:Gem::Dependency
118
- name: ginger
119
- version_requirements: &id007 !ruby/object:Gem::Requirement
120
- none: false
121
- requirements:
122
- - - "="
123
- - !ruby/object:Gem::Version
124
- hash: 31
125
- segments:
126
- - 1
127
- - 2
128
- - 0
129
- version: 1.2.0
130
133
  type: :development
131
- prerelease: false
132
- requirement: *id007
133
- - !ruby/object:Gem::Dependency
134
- name: rake
135
- version_requirements: &id008 !ruby/object:Gem::Requirement
134
+ requirement: &id008 !ruby/object:Gem::Requirement
136
135
  none: false
137
136
  requirements:
138
137
  - - ">="
@@ -143,12 +142,12 @@ dependencies:
143
142
  - 9
144
143
  - 2
145
144
  version: 0.9.2
146
- type: :development
145
+ version_requirements: *id008
147
146
  prerelease: false
148
- requirement: *id008
147
+ name: rake
149
148
  - !ruby/object:Gem::Dependency
150
- name: rspec
151
- version_requirements: &id009 !ruby/object:Gem::Requirement
149
+ type: :development
150
+ requirement: &id009 !ruby/object:Gem::Requirement
152
151
  none: false
153
152
  requirements:
154
153
  - - "="
@@ -159,12 +158,12 @@ dependencies:
159
158
  - 6
160
159
  - 0
161
160
  version: 2.6.0
162
- type: :development
161
+ version_requirements: *id009
163
162
  prerelease: false
164
- requirement: *id009
163
+ name: rspec
165
164
  - !ruby/object:Gem::Dependency
166
- name: will_paginate
167
- version_requirements: &id010 !ruby/object:Gem::Requirement
165
+ type: :development
166
+ requirement: &id010 !ruby/object:Gem::Requirement
168
167
  none: false
169
168
  requirements:
170
169
  - - "="
@@ -174,12 +173,12 @@ dependencies:
174
173
  - 3
175
174
  - 0
176
175
  version: "3.0"
177
- type: :development
176
+ version_requirements: *id010
178
177
  prerelease: false
179
- requirement: *id010
178
+ name: will_paginate
180
179
  - !ruby/object:Gem::Dependency
181
- name: yard
182
- version_requirements: &id011 !ruby/object:Gem::Requirement
180
+ type: :development
181
+ requirement: &id011 !ruby/object:Gem::Requirement
183
182
  none: false
184
183
  requirements:
185
184
  - - ">="
@@ -190,9 +189,9 @@ dependencies:
190
189
  - 7
191
190
  - 2
192
191
  version: 0.7.2
193
- type: :development
192
+ version_requirements: *id011
194
193
  prerelease: false
195
- requirement: *id011
194
+ name: yard
196
195
  description: A concise and easy-to-use Ruby library that connects ActiveRecord to the Sphinx search daemon, managing configuration, indexing and searching.
197
196
  email:
198
197
  - pat@freelancing-gods.com
@@ -377,7 +376,6 @@ files:
377
376
  - spec/thinking_sphinx/source_spec.rb
378
377
  - spec/thinking_sphinx/test_spec.rb
379
378
  - spec/thinking_sphinx_spec.rb
380
- has_rdoc: true
381
379
  homepage: http://freelancing-god.github.com/ts/en/
382
380
  licenses: []
383
381
 
@@ -410,7 +408,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
410
408
  requirements: []
411
409
 
412
410
  rubyforge_project: thinking-sphinx
413
- rubygems_version: 1.4.2
411
+ rubygems_version: 1.8.16
414
412
  signing_key:
415
413
  specification_version: 3
416
414
  summary: ActiveRecord/Rails Sphinx library
@@ -538,3 +536,4 @@ test_files:
538
536
  - spec/thinking_sphinx/source_spec.rb
539
537
  - spec/thinking_sphinx/test_spec.rb
540
538
  - spec/thinking_sphinx_spec.rb
539
+ has_rdoc: