sunspot_rails 2.0.0 → 2.1.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.
Files changed (35) hide show
  1. data/History.txt +6 -1
  2. data/README.rdoc +0 -26
  3. data/dev_tasks/spec.rake +15 -24
  4. data/gemfiles/{rails-2.3.16 → rails-3.0.0} +11 -5
  5. data/gemfiles/{rails-3.0.20 → rails-3.1.0} +11 -4
  6. data/gemfiles/{rails-3.1.10 → rails-3.2.0} +11 -4
  7. data/gemfiles/rails-4.0.0 +20 -0
  8. data/generators/sunspot/templates/sunspot.yml +7 -4
  9. data/lib/generators/sunspot_rails/install/templates/config/sunspot.yml +4 -0
  10. data/lib/sunspot/rails/adapters.rb +12 -11
  11. data/lib/sunspot/rails/configuration.rb +2 -2
  12. data/lib/sunspot/rails/log_subscriber.rb +11 -6
  13. data/lib/sunspot/rails/railtie.rb +1 -1
  14. data/lib/sunspot/rails/searchable.rb +10 -15
  15. data/lib/sunspot/rails/solr_instrumentation.rb +7 -5
  16. data/lib/sunspot/rails/solr_logging.rb +2 -5
  17. data/lib/sunspot/rails/stub_session_proxy.rb +14 -0
  18. data/lib/sunspot/rails/tasks.rb +47 -42
  19. data/lib/sunspot_rails.rb +2 -7
  20. data/spec/configuration_spec.rb +10 -10
  21. data/spec/model_spec.rb +38 -29
  22. data/spec/rails_template/app/models/post_with_default_scope.rb +3 -1
  23. data/spec/rails_template/app/models/rake_task_auto_load_test_model.rb +13 -0
  24. data/spec/rails_template/config/database.yml +11 -0
  25. data/spec/rails_template/config/routes.rb +3 -9
  26. data/spec/rake_task_spec.rb +40 -0
  27. data/spec/searchable_spec.rb +3 -0
  28. data/spec/session_spec.rb +1 -1
  29. data/spec/spec_helper.rb +59 -32
  30. data/spec/stub_session_proxy_spec.rb +8 -4
  31. data/sunspot_rails.gemspec +1 -0
  32. metadata +42 -22
  33. data/gemfiles/rails-3.2.11 +0 -12
  34. data/spec/rails_template/config/boot.rb +0 -127
  35. data/spec/rails_template/config/preinitializer.rb +0 -22
@@ -111,12 +111,16 @@ describe 'specs with Sunspot stubbed' do
111
111
  @search.total.should == 0
112
112
  end
113
113
 
114
- it 'should return nil for a given facet' do
115
- @search.facet(:category_id).should be_nil
114
+ it 'should return empty results for a given facet' do
115
+ @search.facet(:category_id).rows.should == []
116
116
  end
117
117
 
118
- it 'should return nil for a given dynamic facet' do
119
- @search.dynamic_facet(:custom).should be_nil
118
+ it 'should return empty results for a given dynamic facet' do
119
+ @search.dynamic_facet(:custom).rows.should == []
120
+ end
121
+
122
+ it 'should return empty array if listing facets' do
123
+ @search.facets.should == []
120
124
  end
121
125
  end
122
126
  end
@@ -32,6 +32,7 @@ Gem::Specification.new do |s|
32
32
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
33
33
  s.require_paths = ["lib"]
34
34
 
35
+ s.add_dependency 'rails', '>= 3'
35
36
  s.add_dependency 'sunspot', Sunspot::VERSION
36
37
  s.add_dependency 'nokogiri'
37
38
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sunspot_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -27,8 +27,24 @@ authors:
27
27
  autorequire:
28
28
  bindir: bin
29
29
  cert_chain: []
30
- date: 2013-02-26 00:00:00.000000000 Z
30
+ date: 2013-10-25 00:00:00.000000000 Z
31
31
  dependencies:
32
+ - !ruby/object:Gem::Dependency
33
+ name: rails
34
+ requirement: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '3'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '3'
32
48
  - !ruby/object:Gem::Dependency
33
49
  name: sunspot
34
50
  requirement: !ruby/object:Gem::Requirement
@@ -36,7 +52,7 @@ dependencies:
36
52
  requirements:
37
53
  - - '='
38
54
  - !ruby/object:Gem::Version
39
- version: 2.0.0
55
+ version: 2.1.0
40
56
  type: :runtime
41
57
  prerelease: false
42
58
  version_requirements: !ruby/object:Gem::Requirement
@@ -44,13 +60,13 @@ dependencies:
44
60
  requirements:
45
61
  - - '='
46
62
  - !ruby/object:Gem::Version
47
- version: 2.0.0
63
+ version: 2.1.0
48
64
  - !ruby/object:Gem::Dependency
49
65
  name: nokogiri
50
66
  requirement: !ruby/object:Gem::Requirement
51
67
  none: false
52
68
  requirements:
53
- - - ! '>='
69
+ - - '>='
54
70
  - !ruby/object:Gem::Version
55
71
  version: '0'
56
72
  type: :runtime
@@ -58,7 +74,7 @@ dependencies:
58
74
  version_requirements: !ruby/object:Gem::Requirement
59
75
  none: false
60
76
  requirements:
61
- - - ! '>='
77
+ - - '>='
62
78
  - !ruby/object:Gem::Version
63
79
  version: '0'
64
80
  - !ruby/object:Gem::Dependency
@@ -93,11 +109,13 @@ dependencies:
93
109
  - - ~>
94
110
  - !ruby/object:Gem::Version
95
111
  version: '1.2'
96
- description: ! " Sunspot::Rails is an extension to the Sunspot library for Solr
97
- search.\n Sunspot::Rails adds integration between Sunspot and ActiveRecord, including\n
98
- \ defining search and indexing related methods on ActiveRecord models themselves,\n
99
- \ running a Sunspot-compatible Solr instance for development and test\n environments,
100
- and automatically commit Solr index changes at the end of each\n Rails request.\n"
112
+ description: |2
113
+ Sunspot::Rails is an extension to the Sunspot library for Solr search.
114
+ Sunspot::Rails adds integration between Sunspot and ActiveRecord, including
115
+ defining search and indexing related methods on ActiveRecord models themselves,
116
+ running a Sunspot-compatible Solr instance for development and test
117
+ environments, and automatically commit Solr index changes at the end of each
118
+ Rails request.
101
119
  email:
102
120
  - mat@patch.com
103
121
  executables: []
@@ -116,10 +134,10 @@ files:
116
134
  - dev_tasks/release.rake
117
135
  - dev_tasks/spec.rake
118
136
  - dev_tasks/todo.rake
119
- - gemfiles/rails-2.3.16
120
- - gemfiles/rails-3.0.20
121
- - gemfiles/rails-3.1.10
122
- - gemfiles/rails-3.2.11
137
+ - gemfiles/rails-3.0.0
138
+ - gemfiles/rails-3.1.0
139
+ - gemfiles/rails-3.2.0
140
+ - gemfiles/rails-4.0.0
123
141
  - generators/sunspot/sunspot_generator.rb
124
142
  - generators/sunspot/templates/sunspot.yml
125
143
  - install.rb
@@ -155,11 +173,12 @@ files:
155
173
  - spec/rails_template/app/models/post_with_auto.rb
156
174
  - spec/rails_template/app/models/post_with_default_scope.rb
157
175
  - spec/rails_template/app/models/post_with_only_some_attributes_triggering_reindex.rb
158
- - spec/rails_template/config/boot.rb
159
- - spec/rails_template/config/preinitializer.rb
176
+ - spec/rails_template/app/models/rake_task_auto_load_test_model.rb
177
+ - spec/rails_template/config/database.yml
160
178
  - spec/rails_template/config/routes.rb
161
179
  - spec/rails_template/config/sunspot.yml
162
180
  - spec/rails_template/db/schema.rb
181
+ - spec/rake_task_spec.rb
163
182
  - spec/request_lifecycle_spec.rb
164
183
  - spec/schema.rb
165
184
  - spec/searchable_spec.rb
@@ -186,18 +205,18 @@ require_paths:
186
205
  required_ruby_version: !ruby/object:Gem::Requirement
187
206
  none: false
188
207
  requirements:
189
- - - ! '>='
208
+ - - '>='
190
209
  - !ruby/object:Gem::Version
191
210
  version: '0'
192
211
  required_rubygems_version: !ruby/object:Gem::Requirement
193
212
  none: false
194
213
  requirements:
195
- - - ! '>='
214
+ - - '>='
196
215
  - !ruby/object:Gem::Version
197
216
  version: '0'
198
217
  requirements: []
199
218
  rubyforge_project: sunspot
200
- rubygems_version: 1.8.23
219
+ rubygems_version: 1.8.25
201
220
  signing_key:
202
221
  specification_version: 3
203
222
  summary: Rails integration for the Sunspot Solr search library
@@ -215,11 +234,12 @@ test_files:
215
234
  - spec/rails_template/app/models/post_with_auto.rb
216
235
  - spec/rails_template/app/models/post_with_default_scope.rb
217
236
  - spec/rails_template/app/models/post_with_only_some_attributes_triggering_reindex.rb
218
- - spec/rails_template/config/boot.rb
219
- - spec/rails_template/config/preinitializer.rb
237
+ - spec/rails_template/app/models/rake_task_auto_load_test_model.rb
238
+ - spec/rails_template/config/database.yml
220
239
  - spec/rails_template/config/routes.rb
221
240
  - spec/rails_template/config/sunspot.yml
222
241
  - spec/rails_template/db/schema.rb
242
+ - spec/rake_task_spec.rb
223
243
  - spec/request_lifecycle_spec.rb
224
244
  - spec/schema.rb
225
245
  - spec/searchable_spec.rb
@@ -1,12 +0,0 @@
1
- source :rubygems
2
-
3
- gem 'rails', '3.2.11'
4
- gem 'sqlite3', '~> 1.3.7'
5
-
6
- gem 'sunspot', :path => File.expand_path('../../../sunspot', __FILE__)
7
- gem 'sunspot_solr', :path => File.expand_path('../../../sunspot_solr', __FILE__)
8
- gem 'sunspot_rails', :path => File.expand_path('../..', __FILE__)
9
-
10
- group :test do
11
- gem 'rspec-rails', '~> 2.8.1'
12
- end
@@ -1,127 +0,0 @@
1
- if defined?(RAILS_GEM_VERSION) && RAILS_GEM_VERSION =~ /^2/ # Rails 2 only
2
- RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
3
-
4
- module Rails
5
- class << self
6
- def boot!
7
- unless booted?
8
- preinitialize
9
- pick_boot.run
10
- end
11
- end
12
-
13
- def booted?
14
- defined? Rails::Initializer
15
- end
16
-
17
- def pick_boot
18
- (vendor_rails? ? VendorBoot : GemBoot).new
19
- end
20
-
21
- def vendor_rails?
22
- File.exist?("#{RAILS_ROOT}/vendor/rails")
23
- end
24
-
25
- def preinitialize
26
- load(preinitializer_path) if File.exist?(preinitializer_path)
27
- end
28
-
29
- def preinitializer_path
30
- "#{RAILS_ROOT}/config/preinitializer.rb"
31
- end
32
- end
33
-
34
- class Boot
35
- def run
36
- load_initializer
37
- Rails::Initializer.run(:set_load_path)
38
- end
39
- end
40
-
41
- class VendorBoot < Boot
42
- def load_initializer
43
- require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
44
- Rails::Initializer.run(:install_gem_spec_stubs)
45
- Rails::GemDependency.add_frozen_gem_path
46
- end
47
- end
48
-
49
- class GemBoot < Boot
50
- def load_initializer
51
- self.class.load_rubygems
52
- load_rails_gem
53
- require 'initializer'
54
- end
55
-
56
- def load_rails_gem
57
- if version = self.class.gem_version
58
- gem 'rails', version
59
- else
60
- gem 'rails'
61
- end
62
- rescue Gem::LoadError => load_error
63
- if load_error.message =~ /Could not find RubyGem rails/
64
- STDERR.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.)
65
- exit 1
66
- else
67
- raise
68
- end
69
- end
70
-
71
- class << self
72
- def rubygems_version
73
- Gem::RubyGemsVersion rescue nil
74
- end
75
-
76
- def gem_version
77
- if defined? RAILS_GEM_VERSION
78
- RAILS_GEM_VERSION
79
- elsif ENV.include?('RAILS_GEM_VERSION')
80
- ENV['RAILS_GEM_VERSION']
81
- else
82
- parse_gem_version(read_environment_rb)
83
- end
84
- end
85
-
86
- def load_rubygems
87
- min_version = '1.3.2'
88
- require 'rubygems'
89
- unless rubygems_version >= min_version
90
- $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
91
- exit 1
92
- end
93
-
94
- rescue LoadError
95
- $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org)
96
- exit 1
97
- end
98
-
99
- def parse_gem_version(text)
100
- $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
101
- end
102
-
103
- private
104
- def read_environment_rb
105
- File.read("#{RAILS_ROOT}/config/environment.rb")
106
- end
107
- end
108
- end
109
- end
110
-
111
- class Rails::Boot
112
- def run
113
- load_initializer
114
-
115
- Rails::Initializer.class_eval do
116
- def load_gems
117
- @bundler_loaded ||= Bundler.require :default, Rails.env
118
- end
119
- end
120
-
121
- Rails::Initializer.run(:set_load_path)
122
- end
123
- end
124
-
125
- # All that for this:
126
- Rails.boot!
127
- end
@@ -1,22 +0,0 @@
1
- if defined?(RAILS_GEM_VERSION) && RAILS_GEM_VERSION =~ /^2/ # Rails 2 only
2
- begin
3
- require "rubygems"
4
- require "bundler"
5
- rescue LoadError
6
- raise "Could not load the bundler gem. Install it with `gem install bundler`."
7
- end
8
-
9
- if Gem::Version.new(Bundler::VERSION) <= Gem::Version.new("0.9.24")
10
- raise RuntimeError, "Your bundler version is too old for Rails 2.3." +
11
- "Run `gem install bundler` to upgrade."
12
- end
13
-
14
- begin
15
- # Set up load paths for all bundled gems
16
- ENV["BUNDLE_GEMFILE"] = File.expand_path("../../Gemfile", __FILE__)
17
- Bundler.setup
18
- rescue Bundler::GemNotFound
19
- raise RuntimeError, "Bundler couldn't find some gems." +
20
- "Did you run `bundle install`?"
21
- end
22
- end