sunspot_rails 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
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