sunspot_rails 2.1.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.rdoc +1 -1
- data/Rakefile +0 -6
- data/dev_tasks/rdoc.rake +17 -11
- data/dev_tasks/spec.rake +1 -2
- data/lib/sunspot/rails.rb +8 -4
- data/lib/sunspot/rails/configuration.rb +78 -31
- data/lib/sunspot/rails/stub_session_proxy.rb +8 -0
- data/lib/sunspot/rails/tasks.rb +2 -2
- data/lib/sunspot_rails.rb +5 -1
- data/spec/configuration_spec.rb +100 -17
- data/spec/rails_template/config/sunspot.yml +3 -0
- data/spec/stub_session_proxy_spec.rb +18 -0
- metadata +22 -34
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e4265b8bc7f396dcf434243ff31d073722ce37e4
|
4
|
+
data.tar.gz: 6a31e3de9ff96687f791fbca0ff71b29644a3b7e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 476e1c959c213af1972a51abbd779a535d6b698544dc3a93348c4825433819b441cc082736ccbc73f44043ddfe5493f90cb0e963b0669e35b03d050322930516
|
7
|
+
data.tar.gz: e0afd66ab79b43f53df67f4434dface8feaed30185b2f3b21e4d150c6ffdb60ef63ba44f52c0ba6e3f35cdfb7aec927775c23ef19bd3c42494eb87e727ed954c
|
data/README.rdoc
CHANGED
@@ -14,7 +14,7 @@ provides the following features:
|
|
14
14
|
* Provide rake tasks for starting and stopping the development Solr instance,
|
15
15
|
using the configuration in sunspot.yml
|
16
16
|
|
17
|
-
Sunspot::Rails has been tested with Rails
|
17
|
+
Sunspot::Rails has been tested with Rails 3.0, 3.1, 3.2, and 4.0
|
18
18
|
|
19
19
|
== Installation in Rails 3
|
20
20
|
|
data/Rakefile
CHANGED
@@ -1,11 +1,5 @@
|
|
1
1
|
require 'rake'
|
2
2
|
|
3
|
-
begin
|
4
|
-
require 'rdoc/task'
|
5
|
-
rescue LoadError
|
6
|
-
require 'rake/rdoctask'
|
7
|
-
end
|
8
|
-
|
9
3
|
if File.exist?(sunspot_lib = File.expand_path(File.join(File.dirname(__FILE__), '..', 'sunspot', 'lib')))
|
10
4
|
STDERR.puts("Using sunspot lib at #{sunspot_lib}")
|
11
5
|
$: << sunspot_lib
|
data/dev_tasks/rdoc.rake
CHANGED
@@ -1,16 +1,22 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
1
|
+
rdoc_task =
|
2
|
+
begin
|
3
|
+
require 'rdoc/task'
|
4
|
+
RDoc::Task
|
5
|
+
rescue LoadError
|
6
|
+
begin
|
7
|
+
require 'rake/rdoctask'
|
8
|
+
Rake::RDocTask
|
9
|
+
rescue
|
10
|
+
nil
|
11
|
+
end
|
6
12
|
end
|
7
|
-
# It's OK if hanna isn't installed.
|
8
|
-
end
|
9
13
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
+
if rdoc_task
|
15
|
+
rdoc_task.new(:doc) do |rdoc|
|
16
|
+
rdoc.main = '../README.md'
|
17
|
+
rdoc.rdoc_files.include('../README.md', 'lib/sunspot/rails/**/*.rb', 'lib/sunspot/rails.rb')
|
18
|
+
rdoc.rdoc_dir = 'doc'
|
19
|
+
end
|
14
20
|
end
|
15
21
|
|
16
22
|
namespace :doc do
|
data/dev_tasks/spec.rake
CHANGED
@@ -44,8 +44,7 @@ namespace :spec do
|
|
44
44
|
|
45
45
|
task :initialize_database do
|
46
46
|
if ENV['DB'] == 'postgres'
|
47
|
-
sh "
|
48
|
-
sh "psql -c 'create database sunspot_test;' -d template1"
|
47
|
+
sh "bundle exec rake db:test:prepare"
|
49
48
|
end
|
50
49
|
end
|
51
50
|
|
data/lib/sunspot/rails.rb
CHANGED
@@ -43,10 +43,12 @@ module Sunspot #:nodoc:
|
|
43
43
|
|
44
44
|
def master_config(sunspot_rails_configuration)
|
45
45
|
config = Sunspot::Configuration.build
|
46
|
-
|
46
|
+
builder = sunspot_rails_configuration.scheme == 'http' ? URI::HTTP : URI::HTTPS
|
47
|
+
config.solr.url = builder.build(
|
47
48
|
:host => sunspot_rails_configuration.master_hostname,
|
48
49
|
:port => sunspot_rails_configuration.master_port,
|
49
|
-
:path => sunspot_rails_configuration.master_path
|
50
|
+
:path => sunspot_rails_configuration.master_path,
|
51
|
+
:userinfo => sunspot_rails_configuration.userinfo
|
50
52
|
).to_s
|
51
53
|
config.solr.read_timeout = sunspot_rails_configuration.read_timeout
|
52
54
|
config.solr.open_timeout = sunspot_rails_configuration.open_timeout
|
@@ -55,10 +57,12 @@ module Sunspot #:nodoc:
|
|
55
57
|
|
56
58
|
def slave_config(sunspot_rails_configuration)
|
57
59
|
config = Sunspot::Configuration.build
|
58
|
-
|
60
|
+
builder = sunspot_rails_configuration.scheme == 'http' ? URI::HTTP : URI::HTTPS
|
61
|
+
config.solr.url = builder.build(
|
59
62
|
:host => sunspot_rails_configuration.hostname,
|
60
63
|
:port => sunspot_rails_configuration.port,
|
61
|
-
:path => sunspot_rails_configuration.path
|
64
|
+
:path => sunspot_rails_configuration.path,
|
65
|
+
:userinfo => sunspot_rails_configuration.userinfo
|
62
66
|
).to_s
|
63
67
|
config.solr.read_timeout = sunspot_rails_configuration.read_timeout
|
64
68
|
config.solr.open_timeout = sunspot_rails_configuration.open_timeout
|
@@ -25,6 +25,9 @@ module Sunspot #:nodoc:
|
|
25
25
|
# read_timeout: 2
|
26
26
|
# production:
|
27
27
|
# solr:
|
28
|
+
# scheme: http
|
29
|
+
# user: username
|
30
|
+
# pass: password
|
28
31
|
# hostname: localhost
|
29
32
|
# port: 8983
|
30
33
|
# path: /solr/myindex
|
@@ -67,7 +70,7 @@ module Sunspot #:nodoc:
|
|
67
70
|
end
|
68
71
|
@hostname
|
69
72
|
end
|
70
|
-
|
73
|
+
|
71
74
|
#
|
72
75
|
# The port at which to connect to Solr.
|
73
76
|
# Defaults to 8981 in test, 8982 in development and 8983 in production.
|
@@ -86,6 +89,42 @@ module Sunspot #:nodoc:
|
|
86
89
|
@port
|
87
90
|
end
|
88
91
|
|
92
|
+
#
|
93
|
+
# The scheme to use, http or https.
|
94
|
+
# Defaults to http
|
95
|
+
#
|
96
|
+
# ==== Returns
|
97
|
+
#
|
98
|
+
# String:: scheme
|
99
|
+
#
|
100
|
+
def scheme
|
101
|
+
unless defined?(@scheme)
|
102
|
+
@scheme = solr_url.scheme if solr_url
|
103
|
+
@scheme ||= user_configuration_from_key('solr', 'scheme')
|
104
|
+
@scheme ||= default_scheme
|
105
|
+
end
|
106
|
+
@scheme
|
107
|
+
end
|
108
|
+
|
109
|
+
#
|
110
|
+
# The userinfo used for authentication, a colon-delimited string like "user:pass"
|
111
|
+
# Defaults to nil, which means no authentication
|
112
|
+
#
|
113
|
+
# ==== Returns
|
114
|
+
#
|
115
|
+
# String:: userinfo
|
116
|
+
#
|
117
|
+
def userinfo
|
118
|
+
unless defined?(@userinfo)
|
119
|
+
@userinfo = solr_url.userinfo if solr_url
|
120
|
+
user = user_configuration_from_key('solr', 'user')
|
121
|
+
pass = user_configuration_from_key('solr', 'pass')
|
122
|
+
@userinfo ||= [ user, pass ].compact.join(":") if user && pass
|
123
|
+
@userinfo ||= default_userinfo
|
124
|
+
end
|
125
|
+
@userinfo
|
126
|
+
end
|
127
|
+
|
89
128
|
#
|
90
129
|
# The url path to the Solr servlet (useful if you are running multicore).
|
91
130
|
# Default '/solr/default'.
|
@@ -153,7 +192,7 @@ module Sunspot #:nodoc:
|
|
153
192
|
#
|
154
193
|
# The default log_level that should be passed to solr. You can
|
155
194
|
# change the individual log_levels in the solr admin interface.
|
156
|
-
# If no level is specified in the sunspot configuration file,
|
195
|
+
# If no level is specified in the sunspot configuration file,
|
157
196
|
# use a level similar to Rails own logging level.
|
158
197
|
#
|
159
198
|
# ==== Returns
|
@@ -166,39 +205,39 @@ module Sunspot #:nodoc:
|
|
166
205
|
LOG_LEVELS[::Rails.logger.level]
|
167
206
|
)
|
168
207
|
end
|
169
|
-
|
208
|
+
|
170
209
|
#
|
171
210
|
# Should the solr index receive a commit after each http-request.
|
172
211
|
# Default true
|
173
212
|
#
|
174
213
|
# ==== Returns
|
175
|
-
#
|
214
|
+
#
|
176
215
|
# Boolean: auto_commit_after_request?
|
177
216
|
#
|
178
217
|
def auto_commit_after_request?
|
179
|
-
@auto_commit_after_request ||=
|
218
|
+
@auto_commit_after_request ||=
|
180
219
|
user_configuration_from_key('auto_commit_after_request') != false
|
181
220
|
end
|
182
|
-
|
221
|
+
|
183
222
|
#
|
184
223
|
# As for #auto_commit_after_request? but only for deletes
|
185
224
|
# Default false
|
186
225
|
#
|
187
226
|
# ==== Returns
|
188
|
-
#
|
227
|
+
#
|
189
228
|
# Boolean: auto_commit_after_delete_request?
|
190
229
|
#
|
191
230
|
def auto_commit_after_delete_request?
|
192
|
-
@auto_commit_after_delete_request ||=
|
231
|
+
@auto_commit_after_delete_request ||=
|
193
232
|
(user_configuration_from_key('auto_commit_after_delete_request') || false)
|
194
233
|
end
|
195
|
-
|
196
|
-
|
234
|
+
|
235
|
+
|
197
236
|
#
|
198
237
|
# The log directory for solr logfiles
|
199
238
|
#
|
200
239
|
# ==== Returns
|
201
|
-
#
|
240
|
+
#
|
202
241
|
# String:: log_dir
|
203
242
|
#
|
204
243
|
def log_file
|
@@ -208,15 +247,15 @@ module Sunspot #:nodoc:
|
|
208
247
|
def data_path
|
209
248
|
@data_path ||= user_configuration_from_key('solr', 'data_path') || File.join(::Rails.root, 'solr', 'data', ::Rails.env)
|
210
249
|
end
|
211
|
-
|
250
|
+
|
212
251
|
def pid_dir
|
213
252
|
@pid_dir ||= user_configuration_from_key('solr', 'pid_dir') || File.join(::Rails.root, 'solr', 'pids', ::Rails.env)
|
214
253
|
end
|
215
254
|
|
216
|
-
|
217
|
-
#
|
255
|
+
|
256
|
+
#
|
218
257
|
# The solr home directory. Sunspot::Rails expects this directory
|
219
|
-
# to contain a config, data and pids directory. See
|
258
|
+
# to contain a config, data and pids directory. See
|
220
259
|
# Sunspot::Rails::Server.bootstrap for more information.
|
221
260
|
#
|
222
261
|
# ==== Returns
|
@@ -232,21 +271,21 @@ module Sunspot #:nodoc:
|
|
232
271
|
end
|
233
272
|
end
|
234
273
|
|
235
|
-
#
|
274
|
+
#
|
236
275
|
# Solr start jar
|
237
276
|
#
|
238
277
|
def solr_jar
|
239
278
|
@solr_jar ||= user_configuration_from_key('solr', 'solr_jar')
|
240
279
|
end
|
241
280
|
|
242
|
-
#
|
281
|
+
#
|
243
282
|
# Minimum java heap size for Solr instance
|
244
283
|
#
|
245
284
|
def min_memory
|
246
285
|
@min_memory ||= user_configuration_from_key('solr', 'min_memory')
|
247
286
|
end
|
248
287
|
|
249
|
-
#
|
288
|
+
#
|
250
289
|
# Maximum java heap size for Solr instance
|
251
290
|
#
|
252
291
|
def max_memory
|
@@ -259,7 +298,7 @@ module Sunspot #:nodoc:
|
|
259
298
|
def bind_address
|
260
299
|
@bind_address ||= user_configuration_from_key('solr', 'bind_address')
|
261
300
|
end
|
262
|
-
|
301
|
+
|
263
302
|
def read_timeout
|
264
303
|
@read_timeout ||= user_configuration_from_key('solr', 'read_timeout')
|
265
304
|
end
|
@@ -277,9 +316,9 @@ module Sunspot #:nodoc:
|
|
277
316
|
end
|
278
317
|
|
279
318
|
private
|
280
|
-
|
319
|
+
|
281
320
|
#
|
282
|
-
# Logging in rails_root/log as solr_<environment>.log as a
|
321
|
+
# Logging in rails_root/log as solr_<environment>.log as a
|
283
322
|
# default.
|
284
323
|
#
|
285
324
|
# ===== Returns
|
@@ -289,8 +328,8 @@ module Sunspot #:nodoc:
|
|
289
328
|
def default_log_file_location
|
290
329
|
File.join(::Rails.root, 'log', "solr_" + ::Rails.env + ".log")
|
291
330
|
end
|
292
|
-
|
293
|
-
#
|
331
|
+
|
332
|
+
#
|
294
333
|
# return a specific key from the user configuration in config/sunspot.yml
|
295
334
|
#
|
296
335
|
# ==== Returns
|
@@ -302,7 +341,7 @@ module Sunspot #:nodoc:
|
|
302
341
|
hash[key] if hash
|
303
342
|
end
|
304
343
|
end
|
305
|
-
|
344
|
+
|
306
345
|
#
|
307
346
|
# Memoized hash of configuration options for the current Rails environment
|
308
347
|
# as specified in config/sunspot.yml
|
@@ -325,36 +364,44 @@ module Sunspot #:nodoc:
|
|
325
364
|
end
|
326
365
|
end
|
327
366
|
end
|
328
|
-
|
367
|
+
|
329
368
|
protected
|
330
|
-
|
369
|
+
|
331
370
|
#
|
332
371
|
# When a specific hostname, port and path aren't provided in the
|
333
372
|
# sunspot.yml file, look for a key named 'url', then check the
|
334
373
|
# environment, then fall back to a sensible localhost default.
|
335
374
|
#
|
336
|
-
|
375
|
+
|
337
376
|
def solr_url
|
338
377
|
if ENV['SOLR_URL'] || ENV['WEBSOLR_URL']
|
339
378
|
URI.parse(ENV['SOLR_URL'] || ENV['WEBSOLR_URL'])
|
340
379
|
end
|
341
380
|
end
|
342
|
-
|
381
|
+
|
343
382
|
def default_hostname
|
344
383
|
'localhost'
|
345
384
|
end
|
346
|
-
|
385
|
+
|
347
386
|
def default_port
|
348
387
|
{ 'test' => 8981,
|
349
388
|
'development' => 8982,
|
350
389
|
'production' => 8983
|
351
390
|
}[::Rails.env] || 8983
|
352
391
|
end
|
353
|
-
|
392
|
+
|
393
|
+
def default_scheme
|
394
|
+
'http'
|
395
|
+
end
|
396
|
+
|
397
|
+
def default_userinfo
|
398
|
+
nil
|
399
|
+
end
|
400
|
+
|
354
401
|
def default_path
|
355
402
|
'/solr/default'
|
356
403
|
end
|
357
|
-
|
404
|
+
|
358
405
|
end
|
359
406
|
end
|
360
407
|
end
|
@@ -7,6 +7,10 @@ module Sunspot
|
|
7
7
|
@original_session = original_session
|
8
8
|
end
|
9
9
|
|
10
|
+
def batch
|
11
|
+
yield
|
12
|
+
end
|
13
|
+
|
10
14
|
def index(*objects)
|
11
15
|
end
|
12
16
|
|
@@ -31,6 +35,9 @@ module Sunspot
|
|
31
35
|
def remove_all!(clazz = nil)
|
32
36
|
end
|
33
37
|
|
38
|
+
def optimize
|
39
|
+
end
|
40
|
+
|
34
41
|
def dirty?
|
35
42
|
false
|
36
43
|
end
|
@@ -77,6 +84,7 @@ module Sunspot
|
|
77
84
|
def hits(options = {})
|
78
85
|
PaginatedCollection.new
|
79
86
|
end
|
87
|
+
alias_method :raw_results, :hits
|
80
88
|
|
81
89
|
def total
|
82
90
|
0
|
data/lib/sunspot/rails/tasks.rb
CHANGED
@@ -5,7 +5,7 @@ namespace :sunspot do
|
|
5
5
|
# conventions, in that the file name matches the defined class name. \
|
6
6
|
# By default the indexing system works in batches of 50 records, you can \
|
7
7
|
# set your own value for this by using the batch_size argument. You can \
|
8
|
-
# also optionally define a list of models
|
8
|
+
# also optionally define a list of models separated by a plus sign '+'
|
9
9
|
#
|
10
10
|
# $ rake sunspot:reindex # reindex all models
|
11
11
|
# $ rake sunspot:reindex[1000] # reindex in batches of 1000
|
@@ -72,7 +72,7 @@ namespace :sunspot do
|
|
72
72
|
|
73
73
|
def sunspot_solr_in_load_path?
|
74
74
|
# http://www.rubular.com/r/rJGDh7eOSc
|
75
|
-
$:.any? { |path| path =~ %r{sunspot_solr(-[^/]+)?/lib$} }
|
75
|
+
$:.any? { |path| path.to_s =~ %r{sunspot_solr(-[^/]+)?/lib$} }
|
76
76
|
end
|
77
77
|
|
78
78
|
unless sunspot_solr_in_load_path?
|
data/lib/sunspot_rails.rb
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
# This needs to be loaded before sunspot/search/paginated_collection
|
2
2
|
# or #to_json gets defined in Object breaking delegation to Array via
|
3
3
|
# method_missing
|
4
|
-
|
4
|
+
if Rails::VERSION::MAJOR > 4 || (Rails::VERSION::MAJOR == 4 && Rails::VERSION::MINOR >= 1)
|
5
|
+
require 'active_support/core_ext/object/json'
|
6
|
+
else
|
7
|
+
require 'active_support/core_ext/object/to_json'
|
8
|
+
end
|
5
9
|
|
6
10
|
require 'sunspot/rails'
|
7
11
|
require 'sunspot/rails/railtie'
|
data/spec/configuration_spec.rb
CHANGED
@@ -5,15 +5,23 @@ describe Sunspot::Rails::Configuration, "default values without a sunspot.yml" d
|
|
5
5
|
File.stub(:exist?).and_return(false) # simulate sunspot.yml not existing
|
6
6
|
@config = Sunspot::Rails::Configuration.new
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
it "should handle the 'hostname' property when not set" do
|
10
10
|
@config.hostname.should == 'localhost'
|
11
|
-
end
|
12
|
-
|
11
|
+
end
|
12
|
+
|
13
13
|
it "should handle the 'path' property when not set" do
|
14
14
|
@config.path.should == '/solr/default'
|
15
15
|
end
|
16
16
|
|
17
|
+
it "should set the scheme to http" do
|
18
|
+
@config.scheme.should == "http"
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should not have userinfo" do
|
22
|
+
@config.userinfo.should be_nil
|
23
|
+
end
|
24
|
+
|
17
25
|
describe "port" do
|
18
26
|
it "should default to port 8981 in test" do
|
19
27
|
::Rails.stub(:env => 'test')
|
@@ -36,7 +44,7 @@ describe Sunspot::Rails::Configuration, "default values without a sunspot.yml" d
|
|
36
44
|
@config.port.should == 8983
|
37
45
|
end
|
38
46
|
end
|
39
|
-
|
47
|
+
|
40
48
|
it "should set the read timeout to nil when not set" do
|
41
49
|
@config.read_timeout == nil
|
42
50
|
end
|
@@ -49,11 +57,11 @@ describe Sunspot::Rails::Configuration, "default values without a sunspot.yml" d
|
|
49
57
|
::Rails.logger.stub(:level){ 3 }
|
50
58
|
@config.log_level.should == 'SEVERE'
|
51
59
|
end
|
52
|
-
|
60
|
+
|
53
61
|
it "should handle the 'log_file' property" do
|
54
62
|
@config.log_file.should =~ /log\/solr_test.log/
|
55
63
|
end
|
56
|
-
|
64
|
+
|
57
65
|
it "should handle the 'solr_home' property when not set" do
|
58
66
|
Rails.should_receive(:root).at_least(1).and_return('/some/path')
|
59
67
|
@config.solr_home.should == '/some/path/solr'
|
@@ -68,11 +76,11 @@ describe Sunspot::Rails::Configuration, "default values without a sunspot.yml" d
|
|
68
76
|
Rails.should_receive(:root).at_least(1).and_return('/some/path')
|
69
77
|
@config.pid_dir.should == '/some/path/solr/pids/test'
|
70
78
|
end
|
71
|
-
|
79
|
+
|
72
80
|
it "should handle the 'auto_commit_after_request' propery when not set" do
|
73
81
|
@config.auto_commit_after_request?.should == true
|
74
82
|
end
|
75
|
-
|
83
|
+
|
76
84
|
it "should handle the 'auto_commit_after_delete_request' propery when not set" do
|
77
85
|
@config.auto_commit_after_delete_request?.should == false
|
78
86
|
end
|
@@ -92,6 +100,14 @@ describe Sunspot::Rails::Configuration, "user provided sunspot.yml" do
|
|
92
100
|
@config = Sunspot::Rails::Configuration.new
|
93
101
|
end
|
94
102
|
|
103
|
+
it "should handle the 'scheme' property when set" do
|
104
|
+
@config.scheme.should == "http"
|
105
|
+
end
|
106
|
+
|
107
|
+
it "should handle the 'user' and 'pass' properties when set" do
|
108
|
+
@config.userinfo.should == "user:pass"
|
109
|
+
end
|
110
|
+
|
95
111
|
it "should handle the 'hostname' property when set" do
|
96
112
|
@config.hostname.should == 'some.host'
|
97
113
|
end
|
@@ -99,15 +115,15 @@ describe Sunspot::Rails::Configuration, "user provided sunspot.yml" do
|
|
99
115
|
it "should handle the 'port' property when set" do
|
100
116
|
@config.port.should == 1234
|
101
117
|
end
|
102
|
-
|
118
|
+
|
103
119
|
it "should handle the 'path' property when set" do
|
104
120
|
@config.path.should == '/solr/idx'
|
105
121
|
end
|
106
|
-
|
122
|
+
|
107
123
|
it "should handle the 'log_level' propery when set" do
|
108
124
|
@config.log_level.should == 'WARNING'
|
109
125
|
end
|
110
|
-
|
126
|
+
|
111
127
|
it "should handle the 'solr_home' propery when set" do
|
112
128
|
@config.solr_home.should == '/my_superior_path'
|
113
129
|
end
|
@@ -119,7 +135,7 @@ describe Sunspot::Rails::Configuration, "user provided sunspot.yml" do
|
|
119
135
|
it "should handle the 'pid_dir' property when set" do
|
120
136
|
@config.pid_dir.should == '/my_superior_path/pids'
|
121
137
|
end
|
122
|
-
|
138
|
+
|
123
139
|
it "should handle the 'solr_home' property when set" do
|
124
140
|
@config.solr_home.should == '/my_superior_path'
|
125
141
|
end
|
@@ -127,7 +143,7 @@ describe Sunspot::Rails::Configuration, "user provided sunspot.yml" do
|
|
127
143
|
it "should handle the 'auto_commit_after_request' propery when set" do
|
128
144
|
@config.auto_commit_after_request?.should == false
|
129
145
|
end
|
130
|
-
|
146
|
+
|
131
147
|
it "should handle the 'auto_commit_after_delete_request' propery when set" do
|
132
148
|
@config.auto_commit_after_delete_request?.should == true
|
133
149
|
end
|
@@ -135,9 +151,11 @@ describe Sunspot::Rails::Configuration, "user provided sunspot.yml" do
|
|
135
151
|
it "should handle the 'bind_address' property when set" do
|
136
152
|
@config.bind_address.should == "127.0.0.1"
|
137
153
|
end
|
154
|
+
|
138
155
|
it "should handle the 'read_timeout' property when set" do
|
139
156
|
@config.read_timeout.should == 2
|
140
157
|
end
|
158
|
+
|
141
159
|
it "should handle the 'open_timeout' property when set" do
|
142
160
|
@config.open_timeout.should == 0.5
|
143
161
|
end
|
@@ -163,7 +181,7 @@ describe Sunspot::Rails::Configuration, "with ENV['SOLR_URL'] overriding sunspot
|
|
163
181
|
::Rails.stub(:env => 'config_test')
|
164
182
|
@config = Sunspot::Rails::Configuration.new
|
165
183
|
end
|
166
|
-
|
184
|
+
|
167
185
|
after(:all) do
|
168
186
|
ENV.delete('SOLR_URL')
|
169
187
|
end
|
@@ -175,7 +193,7 @@ describe Sunspot::Rails::Configuration, "with ENV['SOLR_URL'] overriding sunspot
|
|
175
193
|
it "should handle the 'port' property when set" do
|
176
194
|
@config.port.should == 5432
|
177
195
|
end
|
178
|
-
|
196
|
+
|
179
197
|
it "should handle the 'path' property when set" do
|
180
198
|
@config.path.should == '/solr/env'
|
181
199
|
end
|
@@ -190,7 +208,7 @@ describe Sunspot::Rails::Configuration, "with ENV['WEBSOLR_URL'] overriding suns
|
|
190
208
|
::Rails.stub(:env => 'config_test')
|
191
209
|
@config = Sunspot::Rails::Configuration.new
|
192
210
|
end
|
193
|
-
|
211
|
+
|
194
212
|
after(:all) do
|
195
213
|
ENV.delete('WEBSOLR_URL')
|
196
214
|
end
|
@@ -202,9 +220,74 @@ describe Sunspot::Rails::Configuration, "with ENV['WEBSOLR_URL'] overriding suns
|
|
202
220
|
it "should handle the 'port' property when set" do
|
203
221
|
@config.port.should == 80
|
204
222
|
end
|
205
|
-
|
223
|
+
|
224
|
+
it "should handle the 'path' property when set" do
|
225
|
+
@config.path.should == '/solr/a1b2c3d4e5f'
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
describe Sunspot::Rails::Configuration, "with ENV['WEBSOLR_URL'] using https" do
|
230
|
+
before(:all) do
|
231
|
+
ENV['WEBSOLR_URL'] = 'https://index.websolr.test/solr/a1b2c3d4e5f'
|
232
|
+
end
|
233
|
+
|
234
|
+
before(:each) do
|
235
|
+
::Rails.stub(:env => 'config_test')
|
236
|
+
@config = Sunspot::Rails::Configuration.new
|
237
|
+
end
|
238
|
+
|
239
|
+
after(:all) do
|
240
|
+
ENV.delete('WEBSOLR_URL')
|
241
|
+
end
|
242
|
+
|
243
|
+
it "should set the scheme to https" do
|
244
|
+
@config.scheme.should == "https"
|
245
|
+
end
|
246
|
+
|
247
|
+
it "should handle the 'hostname' property when set" do
|
248
|
+
@config.hostname.should == 'index.websolr.test'
|
249
|
+
end
|
250
|
+
|
251
|
+
it "should handle the 'port' property when set" do
|
252
|
+
@config.port.should == 443
|
253
|
+
end
|
254
|
+
|
206
255
|
it "should handle the 'path' property when set" do
|
207
256
|
@config.path.should == '/solr/a1b2c3d4e5f'
|
208
257
|
end
|
209
258
|
end
|
210
259
|
|
260
|
+
describe Sunspot::Rails::Configuration, "with ENV['WEBSOLR_URL'] including userinfo" do
|
261
|
+
before(:all) do
|
262
|
+
ENV['WEBSOLR_URL'] = 'https://user:pass@index.websolr.test/solr/a1b2c3d4e5f'
|
263
|
+
end
|
264
|
+
|
265
|
+
before(:each) do
|
266
|
+
::Rails.stub(:env => 'config_test')
|
267
|
+
@config = Sunspot::Rails::Configuration.new
|
268
|
+
end
|
269
|
+
|
270
|
+
after(:all) do
|
271
|
+
ENV.delete('WEBSOLR_URL')
|
272
|
+
end
|
273
|
+
|
274
|
+
it "should include username and passowrd" do
|
275
|
+
@config.userinfo.should == "user:pass"
|
276
|
+
end
|
277
|
+
|
278
|
+
it "should set the scheme to https" do
|
279
|
+
@config.scheme.should == "https"
|
280
|
+
end
|
281
|
+
|
282
|
+
it "should handle the 'hostname' property when set" do
|
283
|
+
@config.hostname.should == 'index.websolr.test'
|
284
|
+
end
|
285
|
+
|
286
|
+
it "should handle the 'port' property when set" do
|
287
|
+
@config.port.should == 443
|
288
|
+
end
|
289
|
+
|
290
|
+
it "should handle the 'path' property when set" do
|
291
|
+
@config.path.should == '/solr/a1b2c3d4e5f'
|
292
|
+
end
|
293
|
+
end
|
@@ -9,6 +9,15 @@ describe 'specs with Sunspot stubbed' do
|
|
9
9
|
@post = Post.create!
|
10
10
|
end
|
11
11
|
|
12
|
+
it 'should batch' do
|
13
|
+
foo = mock('Foo')
|
14
|
+
block = lambda { foo.bar }
|
15
|
+
|
16
|
+
foo.should_receive(:bar)
|
17
|
+
|
18
|
+
Sunspot.batch(&block)
|
19
|
+
end
|
20
|
+
|
12
21
|
it 'should not send index to session' do
|
13
22
|
@session.should_not_receive(:index)
|
14
23
|
@post.index
|
@@ -54,6 +63,11 @@ describe 'specs with Sunspot stubbed' do
|
|
54
63
|
Post.remove_all_from_index!
|
55
64
|
end
|
56
65
|
|
66
|
+
it 'should not send optimize to session' do
|
67
|
+
@session.should_not_receive(:optimize)
|
68
|
+
Sunspot.optimize
|
69
|
+
end
|
70
|
+
|
57
71
|
it 'should return false for dirty?' do
|
58
72
|
@session.should_not_receive(:dirty?)
|
59
73
|
Sunspot.dirty?.should == false
|
@@ -107,6 +121,10 @@ describe 'specs with Sunspot stubbed' do
|
|
107
121
|
@search.hits.should == []
|
108
122
|
end
|
109
123
|
|
124
|
+
it 'should return the same for raw_results as hits' do
|
125
|
+
@search.raw_results.should == @search.hits
|
126
|
+
end
|
127
|
+
|
110
128
|
it 'should return zero total' do
|
111
129
|
@search.total.should == 0
|
112
130
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sunspot_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
5
|
-
prerelease:
|
4
|
+
version: 2.1.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Mat Brown
|
@@ -27,86 +26,76 @@ authors:
|
|
27
26
|
autorequire:
|
28
27
|
bindir: bin
|
29
28
|
cert_chain: []
|
30
|
-
date:
|
29
|
+
date: 2014-05-07 00:00:00.000000000 Z
|
31
30
|
dependencies:
|
32
31
|
- !ruby/object:Gem::Dependency
|
33
32
|
name: rails
|
34
33
|
requirement: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
34
|
requirements:
|
37
|
-
- -
|
35
|
+
- - ">="
|
38
36
|
- !ruby/object:Gem::Version
|
39
37
|
version: '3'
|
40
38
|
type: :runtime
|
41
39
|
prerelease: false
|
42
40
|
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
none: false
|
44
41
|
requirements:
|
45
|
-
- -
|
42
|
+
- - ">="
|
46
43
|
- !ruby/object:Gem::Version
|
47
44
|
version: '3'
|
48
45
|
- !ruby/object:Gem::Dependency
|
49
46
|
name: sunspot
|
50
47
|
requirement: !ruby/object:Gem::Requirement
|
51
|
-
none: false
|
52
48
|
requirements:
|
53
49
|
- - '='
|
54
50
|
- !ruby/object:Gem::Version
|
55
|
-
version: 2.1.
|
51
|
+
version: 2.1.1
|
56
52
|
type: :runtime
|
57
53
|
prerelease: false
|
58
54
|
version_requirements: !ruby/object:Gem::Requirement
|
59
|
-
none: false
|
60
55
|
requirements:
|
61
56
|
- - '='
|
62
57
|
- !ruby/object:Gem::Version
|
63
|
-
version: 2.1.
|
58
|
+
version: 2.1.1
|
64
59
|
- !ruby/object:Gem::Dependency
|
65
60
|
name: nokogiri
|
66
61
|
requirement: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
62
|
requirements:
|
69
|
-
- -
|
63
|
+
- - ">="
|
70
64
|
- !ruby/object:Gem::Version
|
71
65
|
version: '0'
|
72
66
|
type: :runtime
|
73
67
|
prerelease: false
|
74
68
|
version_requirements: !ruby/object:Gem::Requirement
|
75
|
-
none: false
|
76
69
|
requirements:
|
77
|
-
- -
|
70
|
+
- - ">="
|
78
71
|
- !ruby/object:Gem::Version
|
79
72
|
version: '0'
|
80
73
|
- !ruby/object:Gem::Dependency
|
81
74
|
name: rspec
|
82
75
|
requirement: !ruby/object:Gem::Requirement
|
83
|
-
none: false
|
84
76
|
requirements:
|
85
|
-
- - ~>
|
77
|
+
- - "~>"
|
86
78
|
- !ruby/object:Gem::Version
|
87
79
|
version: '1.2'
|
88
80
|
type: :development
|
89
81
|
prerelease: false
|
90
82
|
version_requirements: !ruby/object:Gem::Requirement
|
91
|
-
none: false
|
92
83
|
requirements:
|
93
|
-
- - ~>
|
84
|
+
- - "~>"
|
94
85
|
- !ruby/object:Gem::Version
|
95
86
|
version: '1.2'
|
96
87
|
- !ruby/object:Gem::Dependency
|
97
88
|
name: rspec-rails
|
98
89
|
requirement: !ruby/object:Gem::Requirement
|
99
|
-
none: false
|
100
90
|
requirements:
|
101
|
-
- - ~>
|
91
|
+
- - "~>"
|
102
92
|
- !ruby/object:Gem::Version
|
103
93
|
version: '1.2'
|
104
94
|
type: :development
|
105
95
|
prerelease: false
|
106
96
|
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
none: false
|
108
97
|
requirements:
|
109
|
-
- - ~>
|
98
|
+
- - "~>"
|
110
99
|
- !ruby/object:Gem::Version
|
111
100
|
version: '1.2'
|
112
101
|
description: |2
|
@@ -122,8 +111,8 @@ executables: []
|
|
122
111
|
extensions: []
|
123
112
|
extra_rdoc_files: []
|
124
113
|
files:
|
125
|
-
- .gitignore
|
126
|
-
- .rspec
|
114
|
+
- ".gitignore"
|
115
|
+
- ".rspec"
|
127
116
|
- History.txt
|
128
117
|
- LICENSE
|
129
118
|
- MIT-LICENSE
|
@@ -193,32 +182,31 @@ files:
|
|
193
182
|
homepage: http://github.com/outoftime/sunspot/tree/master/sunspot_rails
|
194
183
|
licenses:
|
195
184
|
- MIT
|
185
|
+
metadata: {}
|
196
186
|
post_install_message:
|
197
187
|
rdoc_options:
|
198
|
-
- --webcvs=http://github.com/outoftime/sunspot/tree/master/%s
|
199
|
-
- --title
|
188
|
+
- "--webcvs=http://github.com/outoftime/sunspot/tree/master/%s"
|
189
|
+
- "--title"
|
200
190
|
- Sunspot-Rails - Rails integration for the Sunspot Solr search library - API Documentation
|
201
|
-
- --main
|
191
|
+
- "--main"
|
202
192
|
- README.rdoc
|
203
193
|
require_paths:
|
204
194
|
- lib
|
205
195
|
required_ruby_version: !ruby/object:Gem::Requirement
|
206
|
-
none: false
|
207
196
|
requirements:
|
208
|
-
- -
|
197
|
+
- - ">="
|
209
198
|
- !ruby/object:Gem::Version
|
210
199
|
version: '0'
|
211
200
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
|
-
none: false
|
213
201
|
requirements:
|
214
|
-
- -
|
202
|
+
- - ">="
|
215
203
|
- !ruby/object:Gem::Version
|
216
204
|
version: '0'
|
217
205
|
requirements: []
|
218
206
|
rubyforge_project: sunspot
|
219
|
-
rubygems_version:
|
207
|
+
rubygems_version: 2.2.2
|
220
208
|
signing_key:
|
221
|
-
specification_version:
|
209
|
+
specification_version: 4
|
222
210
|
summary: Rails integration for the Sunspot Solr search library
|
223
211
|
test_files:
|
224
212
|
- spec/configuration_spec.rb
|