sunspot_rails 2.2.0 → 2.2.4

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 35f1acfbb723240a94351de829da76209d44e561
4
+ data.tar.gz: 47ee861fe055f37f2a09901f46538007789eb210
5
+ SHA512:
6
+ metadata.gz: 483a3523c068942840b0fee63727e30a7a506793ad7107ce9df747e0199e61f764a5915873e20ec66789c7ad895b9ceb22e640eb65caf9405523fc9245b41817
7
+ data.tar.gz: ae29cca30f1103b861cbffe4776f3172e4f6408711738a4e0dbce81dcb51b5e4c90ed0464f76db469de7cb63dc8a0d7adb29a7d58689b7283667bb46330767e7
@@ -8,6 +8,7 @@ gem 'sunspot_rails', :path => File.expand_path('../..', __FILE__)
8
8
 
9
9
  group :test do
10
10
  gem 'rspec-rails', '~> 2.14.0'
11
+ gem 'progress_bar', '~> 1.0.5', require: false
11
12
  end
12
13
 
13
14
  group :postgres do
@@ -8,6 +8,7 @@ gem 'sunspot_rails', :path => File.expand_path('../..', __FILE__)
8
8
 
9
9
  group :test do
10
10
  gem 'rspec-rails', '~> 2.14.0'
11
+ gem 'progress_bar', '~> 1.0.5', require: false
11
12
  end
12
13
 
13
14
  group :postgres do
@@ -8,6 +8,7 @@ gem 'sunspot_rails', :path => File.expand_path('../..', __FILE__)
8
8
 
9
9
  group :test do
10
10
  gem 'rspec-rails', '~> 2.14.0'
11
+ gem 'progress_bar', '~> 1.0.5', require: false
11
12
  end
12
13
 
13
14
  group :postgres do
@@ -9,6 +9,7 @@ gem 'sunspot_rails', :path => File.expand_path('../..', __FILE__)
9
9
  group :test do
10
10
  gem 'protected_attributes' # Rails 4 support for attr_accessor so specs still work
11
11
  gem 'rspec-rails', '~> 2.14.0'
12
+ gem 'progress_bar', '~> 1.0.5', require: false
12
13
  end
13
14
 
14
15
  group :postgres do
@@ -0,0 +1,21 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem 'rails', '~> 4.1.0'
4
+
5
+ gem 'sunspot', :path => File.expand_path('../../../sunspot', __FILE__)
6
+ gem 'sunspot_solr', :path => File.expand_path('../../../sunspot_solr', __FILE__)
7
+ gem 'sunspot_rails', :path => File.expand_path('../..', __FILE__)
8
+
9
+ group :test do
10
+ gem 'protected_attributes' # Rails 4 support for attr_accessor so specs still work
11
+ gem 'rspec-rails', '~> 2.14.0'
12
+ gem 'progress_bar', '~> 1.0.5', require: false
13
+ end
14
+
15
+ group :postgres do
16
+ gem 'pg'
17
+ end
18
+
19
+ group :sqlite do
20
+ gem 'sqlite3', '~> 1.3.7'
21
+ end
@@ -0,0 +1,21 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem 'rails', '~> 4.2.0'
4
+
5
+ gem 'sunspot', :path => File.expand_path('../../../sunspot', __FILE__)
6
+ gem 'sunspot_solr', :path => File.expand_path('../../../sunspot_solr', __FILE__)
7
+ gem 'sunspot_rails', :path => File.expand_path('../..', __FILE__)
8
+
9
+ group :test do
10
+ gem 'protected_attributes' # Rails 4 support for attr_accessor so specs still work
11
+ gem 'rspec-rails', '~> 2.14.0'
12
+ gem 'progress_bar', '~> 1.0.5', require: false
13
+ end
14
+
15
+ group :postgres do
16
+ gem 'pg'
17
+ end
18
+
19
+ group :sqlite do
20
+ gem 'sqlite3', '~> 1.3.7'
21
+ end
@@ -21,11 +21,12 @@ module Sunspot #:nodoc:
21
21
  class ActiveRecordDataAccessor < Sunspot::Adapters::DataAccessor
22
22
  # options for the find
23
23
  attr_accessor :include
24
+ attr_accessor :scopes
24
25
  attr_reader :select
25
26
 
26
27
  def initialize(clazz)
27
28
  super(clazz)
28
- @inherited_attributes = [:include, :select]
29
+ @inherited_attributes = [:include, :select, :scopes]
29
30
  end
30
31
 
31
32
  #
@@ -77,6 +78,9 @@ module Sunspot #:nodoc:
77
78
  scope = relation
78
79
  scope = scope.includes(@include) if @include.present?
79
80
  scope = scope.select(@select) if @select.present?
81
+ Array.wrap(@scopes).each do |s|
82
+ scope = scope.send(s)
83
+ end
80
84
  scope
81
85
  end
82
86
 
@@ -12,8 +12,7 @@ module Sunspot #:nodoc:
12
12
  # solr:
13
13
  # hostname: localhost
14
14
  # port: 8982
15
- # min_memory: 512M
16
- # max_memory: 1G
15
+ # memory: 1G
17
16
  # solr_jar: /some/path/solr15/start.jar
18
17
  # bind_address: 0.0.0.0
19
18
  # disabled: false
@@ -247,10 +246,6 @@ module Sunspot #:nodoc:
247
246
  @log_file ||= (user_configuration_from_key('solr', 'log_file') || default_log_file_location )
248
247
  end
249
248
 
250
- def data_path
251
- @data_path ||= user_configuration_from_key('solr', 'data_path') || File.join(::Rails.root, 'solr', 'data', ::Rails.env)
252
- end
253
-
254
249
  def pid_dir
255
250
  @pid_dir ||= user_configuration_from_key('solr', 'pid_dir') || File.join(::Rails.root, 'solr', 'pids', ::Rails.env)
256
251
  end
@@ -277,22 +272,15 @@ module Sunspot #:nodoc:
277
272
  #
278
273
  # Solr start jar
279
274
  #
280
- def solr_jar
281
- @solr_jar ||= user_configuration_from_key('solr', 'solr_jar')
282
- end
283
-
284
- #
285
- # Minimum java heap size for Solr instance
286
- #
287
- def min_memory
288
- @min_memory ||= user_configuration_from_key('solr', 'min_memory')
275
+ def solr_executable
276
+ @solr_executable ||= user_configuration_from_key('solr', 'solr_executable')
289
277
  end
290
278
 
291
279
  #
292
- # Maximum java heap size for Solr instance
280
+ # java heap size for Solr instance
293
281
  #
294
- def max_memory
295
- @max_memory ||= user_configuration_from_key('solr', 'max_memory')
282
+ def memory
283
+ @memory ||= user_configuration_from_key('solr', 'memory')
296
284
  end
297
285
 
298
286
  #
@@ -134,6 +134,8 @@ module Sunspot #:nodoc:
134
134
  alias_method :index, :solr_index unless method_defined? :index
135
135
  alias_method :index_orphans, :solr_index_orphans unless method_defined? :index_orphans
136
136
  alias_method :clean_index_orphans, :solr_clean_index_orphans unless method_defined? :clean_index_orphans
137
+ alias_method :atomic_update, :solr_atomic_update unless method_defined? :atomic_update
138
+ alias_method :atomic_update!, :solr_atomic_update! unless method_defined? :atomic_update!
137
139
  end
138
140
  end
139
141
  #
@@ -257,9 +259,9 @@ module Sunspot #:nodoc:
257
259
  if options[:batch_size].to_i > 0
258
260
  batch_counter = 0
259
261
  self.includes(options[:include]).find_in_batches(options.slice(:batch_size, :start)) do |records|
260
-
262
+
261
263
  solr_benchmark(options[:batch_size], batch_counter += 1) do
262
- Sunspot.index(records.select { |model| model.indexable? })
264
+ Sunspot.index(records.select(&:indexable?))
263
265
  Sunspot.commit if options[:batch_commit]
264
266
  end
265
267
 
@@ -273,6 +275,46 @@ module Sunspot #:nodoc:
273
275
  Sunspot.commit unless options[:batch_commit]
274
276
  end
275
277
 
278
+ #
279
+ # Update properties of existing records in the Solr index.
280
+ # Atomic updates available only for the stored properties.
281
+ #
282
+ # ==== Updates (passed as a hash)
283
+ #
284
+ # updates should be specified as a hash, where key - is the object ID
285
+ # and values is hash with property name/values to be updated.
286
+ #
287
+ # ==== Examples
288
+ #
289
+ # class Post < ActiveRecord::Base
290
+ # searchable do
291
+ # string :title, stored: true
292
+ # string :description, stored: true
293
+ # end
294
+ # end
295
+ #
296
+ # post1 = Post.create(title: 'A Title', description: nil)
297
+ #
298
+ # # update single property
299
+ # Post.atomic_update(post1.id => {description: 'New post description'})
300
+ #
301
+ # ==== Notice
302
+ # all non-stored properties in Solr index will be lost after update.
303
+ # Read Solr wiki page: https://wiki.apache.org/solr/Atomic_Updates
304
+ def solr_atomic_update(updates = {})
305
+ Sunspot.atomic_update(self, updates)
306
+ end
307
+
308
+ #
309
+ # Update properties of existing records in the Solr index atomically, and
310
+ # immediately commits.
311
+ #
312
+ # See #solr_atomic_update for information on options, etc.
313
+ #
314
+ def solr_atomic_update!(updates = {})
315
+ Sunspot.atomic_update!(self, updates)
316
+ end
317
+
276
318
  #
277
319
  # Return the IDs of records of this class that are indexed in Solr but
278
320
  # do not exist in the database. Under normal circumstances, this should
@@ -282,8 +324,7 @@ module Sunspot #:nodoc:
282
324
  #
283
325
  # ==== Options (passed as a hash)
284
326
  #
285
- # batch_size<Integer>:: Batch size with which to load records. Passing
286
- # Default is 1000 (from ActiveRecord).
327
+ # batch_size<Integer>:: Override default batch size with which to load records.
287
328
  #
288
329
  # ==== Returns
289
330
  #
@@ -294,7 +335,7 @@ module Sunspot #:nodoc:
294
335
  solr_page = 0
295
336
  solr_ids = []
296
337
  while (solr_page = solr_page.next)
297
- ids = solr_search_ids { paginate(:page => solr_page, :per_page => 1000) }.to_a
338
+ ids = solr_search_ids { paginate(:page => solr_page, :per_page => batch_size) }.to_a
298
339
  break if ids.empty?
299
340
  solr_ids.concat ids
300
341
  end
@@ -310,8 +351,7 @@ module Sunspot #:nodoc:
310
351
  #
311
352
  # ==== Options (passed as a hash)
312
353
  #
313
- # batch_size<Integer>:: Batch size with which to load records
314
- # Default is 50
354
+ # batch_size<Integer>:: Override default batch size with which to load records
315
355
  #
316
356
  def solr_clean_index_orphans(opts={})
317
357
  solr_index_orphans(opts).each do |id|
@@ -334,15 +374,15 @@ module Sunspot #:nodoc:
334
374
  end
335
375
 
336
376
  def solr_execute_search(options = {})
337
- options.assert_valid_keys(:include, :select)
377
+ inherited_attributes = [:include, :select, :scopes]
378
+ options.assert_valid_keys(*inherited_attributes)
338
379
  search = yield
339
380
  unless options.empty?
340
381
  search.build do |query|
341
- if options[:include]
342
- query.data_accessor_for(self).include = options[:include]
343
- end
344
- if options[:select]
345
- query.data_accessor_for(self).select = options[:select]
382
+ inherited_attributes.each do |attr|
383
+ if options[attr]
384
+ query.data_accessor_for(self).send("#{attr}=", options[attr])
385
+ end
346
386
  end
347
387
  end
348
388
  end
@@ -378,6 +418,8 @@ module Sunspot #:nodoc:
378
418
  alias_method :remove_from_index!, :solr_remove_from_index! unless method_defined? :remove_from_index!
379
419
  alias_method :more_like_this, :solr_more_like_this unless method_defined? :more_like_this
380
420
  alias_method :more_like_this_ids, :solr_more_like_this_ids unless method_defined? :more_like_this_ids
421
+ alias_method :atomic_update, :solr_atomic_update unless method_defined? :atomic_update
422
+ alias_method :atomic_update!, :solr_atomic_update! unless method_defined? :atomic_update!
381
423
  end
382
424
  end
383
425
  #
@@ -398,6 +440,23 @@ module Sunspot #:nodoc:
398
440
  def solr_index!
399
441
  Sunspot.index!(self)
400
442
  end
443
+
444
+ #
445
+ # Updates specified model properties in Solr.
446
+ # Unlike ClassMethods#solr_atomic_update you dont need to pass object id,
447
+ # you only need to pass hash with property changes
448
+ #
449
+ def solr_atomic_update(updates = {})
450
+ Sunspot.atomic_update(self.class, self.id => updates)
451
+ end
452
+
453
+ #
454
+ # Updates specified model properties in Solr and immediately commit.
455
+ # See #solr_atomic_update
456
+ #
457
+ def solr_atomic_update!(updates = {})
458
+ Sunspot.atomic_update!(self.class, self.id => updates)
459
+ end
401
460
 
402
461
  #
403
462
  # Remove the model from the Solr index. Using the defaults, this should
@@ -2,32 +2,21 @@ module Sunspot
2
2
  module Rails
3
3
  class Server < Sunspot::Solr::Server
4
4
 
5
- #
5
+ #
6
6
  # Directory in which to store PID files
7
7
  #
8
8
  def pid_dir
9
9
  configuration.pid_dir || File.join(::Rails.root, 'tmp', 'pids')
10
10
  end
11
11
 
12
- #
12
+ #
13
13
  # Name of the PID file
14
14
  #
15
15
  def pid_file
16
16
  "sunspot-solr-#{::Rails.env}.pid"
17
17
  end
18
18
 
19
- #
20
- # Directory to store lucene index data files
21
- #
22
- # ==== Returns
23
19
  #
24
- # String:: data_path
25
- #
26
- def solr_data_dir
27
- configuration.data_path
28
- end
29
-
30
- #
31
20
  # Directory to use for Solr home.
32
21
  #
33
22
  def solr_home
@@ -37,18 +26,18 @@ module Sunspot
37
26
  #
38
27
  # Solr start jar
39
28
  #
40
- def solr_jar
41
- configuration.solr_jar || super
29
+ def solr_executable
30
+ configuration.solr_executable || super
42
31
  end
43
32
 
44
- #
33
+ #
45
34
  # Address on which to run Solr
46
35
  #
47
36
  def bind_address
48
37
  configuration.bind_address
49
38
  end
50
39
 
51
- #
40
+ #
52
41
  # Port on which to run Solr
53
42
  #
54
43
  def port
@@ -59,25 +48,18 @@ module Sunspot
59
48
  configuration.log_level
60
49
  end
61
50
 
62
- #
51
+ #
63
52
  # Log file for Solr. File is in the rails log/ directory.
64
53
  #
65
54
  def log_file
66
55
  File.join(::Rails.root, 'log', "sunspot-solr-#{::Rails.env}.log")
67
56
  end
68
57
 
69
- #
70
- # Minimum Java heap size for Solr
71
58
  #
72
- def min_memory
73
- configuration.min_memory
74
- end
75
-
76
- #
77
- # Maximum Java heap size for Solr
59
+ # Java heap size for Solr
78
60
  #
79
- def max_memory
80
- configuration.max_memory
61
+ def memory
62
+ configuration.memory
81
63
  end
82
64
 
83
65
  private
@@ -17,6 +17,12 @@ module Sunspot
17
17
  def index!(*objects)
18
18
  end
19
19
 
20
+ def atomic_update(clazz, updates = {})
21
+ end
22
+
23
+ def atomic_update!(clazz, updates = {})
24
+ end
25
+
20
26
  def remove(*objects)
21
27
  end
22
28
 
@@ -110,6 +116,10 @@ module Sunspot
110
116
  DataAccessorStub.new
111
117
  end
112
118
 
119
+ def stats(name)
120
+ StatsStub.new
121
+ end
122
+
113
123
  def execute
114
124
  self
115
125
  end
@@ -148,6 +158,7 @@ module Sunspot
148
158
  def previous_page
149
159
  nil
150
160
  end
161
+ alias :prev_page :previous_page
151
162
 
152
163
  def next_page
153
164
  nil
@@ -171,6 +182,49 @@ module Sunspot
171
182
 
172
183
  end
173
184
 
185
+ class StatsStub
186
+ def min
187
+ 0
188
+ end
189
+
190
+ def max
191
+ 100
192
+ end
193
+
194
+ def count
195
+ 30
196
+ end
197
+
198
+ def sum
199
+ 500
200
+ end
201
+
202
+ def missing
203
+ 3
204
+ end
205
+
206
+ def sum_of_squares
207
+ 5000
208
+ end
209
+
210
+ def mean
211
+ 50
212
+ end
213
+
214
+ def standard_deviation
215
+ 20
216
+ end
217
+
218
+ def facets
219
+ []
220
+ end
221
+
222
+ def facet(name)
223
+ FacetStub.new
224
+ end
225
+
226
+ end
227
+
174
228
  end
175
229
  end
176
230
  end
@@ -49,6 +49,8 @@ namespace :sunspot do
49
49
  reindex_options[:progress_bar] = ProgressBar.new(total_documents)
50
50
  rescue LoadError => e
51
51
  $stdout.puts "Skipping progress bar: for progress reporting, add gem 'progress_bar' to your Gemfile"
52
+ rescue ProgressBar::ArgumentError => e
53
+ $stdout.puts "You have no data in the database. Reindexing does nothing here."
52
54
  rescue Exception => e
53
55
  $stderr.puts "Error using progress bar: #{e.message}"
54
56
  end unless args[:silence]
@@ -67,11 +67,6 @@ describe Sunspot::Rails::Configuration, "default values without a sunspot.yml" d
67
67
  @config.solr_home.should == '/some/path/solr'
68
68
  end
69
69
 
70
- it "should handle the 'data_path' property when not set" do
71
- Rails.should_receive(:root).at_least(1).and_return('/some/path')
72
- @config.data_path.should == '/some/path/solr/data/test'
73
- end
74
-
75
70
  it "should handle the 'pid_dir' property when not set" do
76
71
  Rails.should_receive(:root).at_least(1).and_return('/some/path')
77
72
  @config.pid_dir.should == '/some/path/solr/pids/test'
@@ -136,10 +131,6 @@ describe Sunspot::Rails::Configuration, "user provided sunspot.yml" do
136
131
  @config.solr_home.should == '/my_superior_path'
137
132
  end
138
133
 
139
- it "should handle the 'data_path' property when set" do
140
- @config.data_path.should == '/my_superior_path/data'
141
- end
142
-
143
134
  it "should handle the 'pid_dir' property when set" do
144
135
  @config.pid_dir.should == '/my_superior_path/pids'
145
136
  end
@@ -171,7 +162,7 @@ end
171
162
 
172
163
  describe Sunspot::Rails::Configuration, "with auto_index_callback and auto_remove_callback set" do
173
164
  before do
174
- ::Rails.stub!(:env => 'config_commit_test')
165
+ ::Rails.stub(:env => 'config_commit_test')
175
166
  @config = Sunspot::Rails::Configuration.new
176
167
  end
177
168
 
@@ -165,6 +165,22 @@ describe 'ActiveRecord mixin' do
165
165
  end.results.first.attribute_names.sort.should == ['body', 'id', 'title']
166
166
  end
167
167
 
168
+ it 'should use the scoped option from search call to data accessor' do
169
+ Post.search(:scopes => [:includes_location]) do
170
+ with :title, 'Test Post'
171
+ end.data_accessor_for(Post).scopes.should == [:includes_location]
172
+ end
173
+
174
+ it 'should use the scopes option on the data accessor when specified' do
175
+ @post.update_attribute(:location, Location.create)
176
+ post = Post.search do
177
+ with :title, 'Test Post'
178
+ data_accessor_for(Post).scopes = [:includes_location]
179
+ end.results.first
180
+
181
+ (Rails.version >= '3.1' ? post.association(:location).loaded? : post.loaded_location?).should be_true # Rails 3.1 removed "loaded_#{association}" method
182
+ end
183
+
168
184
  it 'should gracefully handle nonexistent records' do
169
185
  post2 = Post.create!(:title => 'Test Post')
170
186
  post2.index!
@@ -10,4 +10,8 @@ class Post < ActiveRecord::Base
10
10
  text :body, :more_like_this => true
11
11
  location :location
12
12
  end
13
+
14
+ scope :includes_location, -> {
15
+ includes(:location)
16
+ }
13
17
  end
@@ -17,7 +17,6 @@ config_test:
17
17
  port: 1234
18
18
  path: /solr/idx
19
19
  log_level: WARNING
20
- data_path: /my_superior_path/data
21
20
  pid_dir: /my_superior_path/pids
22
21
  solr_home: /my_superior_path
23
22
  bind_address: 127.0.0.1
@@ -30,6 +30,12 @@ describe 'sunspot namespace rake task' do
30
30
 
31
31
  run_rake_task("sunspot:reindex", '', "Post+Author", true)
32
32
  end
33
+
34
+ it "should raise exception when all tables of sunspot models are empty" do
35
+ STDOUT.should_receive(:puts).with("You have no data in the database. Reindexing does nothing here.")
36
+ empty_tables
37
+ run_rake_task("sunspot:reindex")
38
+ end
33
39
  end
34
40
  end
35
41
 
@@ -16,10 +16,6 @@ describe Sunspot::Rails::Server do
16
16
  @server.pid_path.should == File.join(@server.pid_dir, 'sunspot-solr-test.pid')
17
17
  end
18
18
 
19
- it "sets the correct Solr data dir" do
20
- @server.solr_data_dir.should == File.join(@solr_home, 'data', 'test')
21
- end
22
-
23
19
  it "sets the correct port" do
24
20
  @server.port.should == 8983
25
21
  end
@@ -10,7 +10,7 @@ describe 'specs with Sunspot stubbed' do
10
10
  end
11
11
 
12
12
  it 'should batch' do
13
- foo = mock('Foo')
13
+ foo = double('Foo')
14
14
  block = lambda { foo.bar }
15
15
 
16
16
  foo.should_receive(:bar)
@@ -28,6 +28,16 @@ describe 'specs with Sunspot stubbed' do
28
28
  @post.index!
29
29
  end
30
30
 
31
+ it 'should not send atomic_update to session' do
32
+ @session.should_not_receive(:atomic_update)
33
+ @post.index
34
+ end
35
+
36
+ it 'should not send atomic_update! to session' do
37
+ @session.should_not_receive(:atomic_update!)
38
+ @post.index!
39
+ end
40
+
31
41
  it 'should not send commit to session' do
32
42
  @session.should_not_receive(:commit)
33
43
  Sunspot.commit
@@ -154,5 +164,32 @@ describe 'specs with Sunspot stubbed' do
154
164
  @accessor.should respond_to(:include, :include=)
155
165
  end
156
166
  end
167
+
168
+ describe '#stats' do
169
+ before do
170
+ @stats = @search.stats(:price)
171
+ end
172
+
173
+ it 'should response to all the available data methods' do
174
+ @stats.should respond_to(
175
+ :min,
176
+ :max,
177
+ :count,
178
+ :sum,
179
+ :missing,
180
+ :sum_of_squares,
181
+ :mean,
182
+ :standard_deviation)
183
+ end
184
+
185
+ it 'should return empty results for a given facet' do
186
+ @stats.facet(:category_id).rows.should == []
187
+ end
188
+
189
+ it 'should return empty array if listing facets' do
190
+ @stats.facets.should == []
191
+ end
192
+
193
+ end
157
194
  end
158
195
  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.2.0
5
- prerelease:
4
+ version: 2.2.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Mat Brown
@@ -27,12 +26,11 @@ authors:
27
26
  autorequire:
28
27
  bindir: bin
29
28
  cert_chain: []
30
- date: 2015-04-09 00:00:00.000000000 Z
29
+ date: 2016-01-21 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
@@ -40,7 +38,6 @@ dependencies:
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
@@ -48,23 +45,20 @@ dependencies:
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.2.0
51
+ version: 2.2.4
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.2.0
58
+ version: 2.2.4
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
@@ -72,7 +66,6 @@ dependencies:
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
@@ -80,7 +73,6 @@ dependencies:
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
@@ -88,7 +80,6 @@ dependencies:
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
@@ -96,7 +87,6 @@ dependencies:
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
@@ -104,7 +94,6 @@ dependencies:
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
@@ -138,6 +127,8 @@ files:
138
127
  - gemfiles/rails-3.1.0
139
128
  - gemfiles/rails-3.2.0
140
129
  - gemfiles/rails-4.0.0
130
+ - gemfiles/rails-4.1.0
131
+ - gemfiles/rails-4.2.0
141
132
  - generators/sunspot/sunspot_generator.rb
142
133
  - generators/sunspot/templates/sunspot.yml
143
134
  - install.rb
@@ -193,6 +184,7 @@ files:
193
184
  homepage: http://github.com/outoftime/sunspot/tree/master/sunspot_rails
194
185
  licenses:
195
186
  - MIT
187
+ metadata: {}
196
188
  post_install_message:
197
189
  rdoc_options:
198
190
  - "--webcvs=http://github.com/outoftime/sunspot/tree/master/%s"
@@ -203,22 +195,20 @@ rdoc_options:
203
195
  require_paths:
204
196
  - lib
205
197
  required_ruby_version: !ruby/object:Gem::Requirement
206
- none: false
207
198
  requirements:
208
199
  - - ">="
209
200
  - !ruby/object:Gem::Version
210
201
  version: '0'
211
202
  required_rubygems_version: !ruby/object:Gem::Requirement
212
- none: false
213
203
  requirements:
214
204
  - - ">="
215
205
  - !ruby/object:Gem::Version
216
206
  version: '0'
217
207
  requirements: []
218
208
  rubyforge_project: sunspot
219
- rubygems_version: 1.8.25
209
+ rubygems_version: 2.5.0
220
210
  signing_key:
221
- specification_version: 3
211
+ specification_version: 4
222
212
  summary: Rails integration for the Sunspot Solr search library
223
213
  test_files:
224
214
  - spec/configuration_spec.rb