sunspot-rails-tester 0.0.4 → 1.0.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.
data/README.md CHANGED
@@ -4,53 +4,78 @@ This gem allows you to "turn on" solr for certain portions
4
4
  of your tests. For the code that does not use solr, you
5
5
  would want to "stub" sunspot to avoid unneeded indexing.
6
6
 
7
+ [![Code Climate](https://codeclimate.com/github/justinko/sunspot-rails-tester.png)](https://codeclimate.com/github/justinko/sunspot-rails-tester)
8
+
7
9
  Here is an example RSpec 2 spec_helper.rb:
8
10
 
9
- $original_sunspot_session = Sunspot.session
10
-
11
- RSpec.configure do |config|
12
- config.mock_with :rspec
13
-
14
- config.before do
15
- Sunspot.session = Sunspot::Rails::StubSessionProxy.new($original_sunspot_session)
16
- end
17
-
18
- config.before :solr => true do
19
- Sunspot::Rails::Tester.start_original_sunspot_session
20
- Sunspot.session = $original_sunspot_session
21
- Sunspot.remove_all!
22
- end
23
- end
24
-
11
+ ```ruby
12
+ $original_sunspot_session = Sunspot.session
13
+
14
+ RSpec.configure do |config|
15
+ config.before do
16
+ Sunspot.session = Sunspot::Rails::StubSessionProxy.new($original_sunspot_session)
17
+ end
18
+
19
+ config.before :each, :solr => true do
20
+ Sunspot::Rails::Tester.start_original_sunspot_session
21
+ Sunspot.session = $original_sunspot_session
22
+ Sunspot.remove_all!
23
+ end
24
+ end
25
+ ```
26
+
25
27
  Let's go through what the above code does.
26
28
 
27
29
  * `$original_sunspot_session` stores the _original_ sunspot
28
30
  session. By default, sunspot_rails uses the `SessionProxy::ThreadLocalSessionProxy`.
29
-
31
+
30
32
  * In the first `before` block, we set the session to a stub session for
31
33
  _every_ example. `Sunspot::Rails::StubSessionProxy` is just a dummy class
32
34
  that skips indexing.
33
-
35
+
34
36
  * In the second `before` block, we use RSpec 2's metadata feature by
35
37
  adding `:solr => true`. Any example or example group with this metadata
36
38
  will run the _original_ sunspot session.
37
39
  `Sunspot::Rails::Tester.start_original_sunspot_session` starts the solr instance
38
40
  if it's not running.
39
-
41
+
40
42
  Here is an example spec that utilizes sunspot-rails-tester:
41
43
 
42
- require 'spec_helper'
43
-
44
- describe 'search page' do
45
- it 'highlights the active tab in the navigation' do
46
- # uses the stub session
47
- end
48
-
49
- it 'finds and displays a person', :solr => true do
50
- # uses actual solr - indexing will happen
51
- end
52
- end
53
-
44
+ ```ruby
45
+ require 'spec_helper'
46
+
47
+ describe 'search page' do
48
+ it 'highlights the active tab in the navigation' do
49
+ # uses the stub session
50
+ end
51
+
52
+ it 'finds and displays a person', :solr => true do
53
+ # uses actual solr - indexing will happen
54
+ end
55
+ end
56
+ ```
57
+
58
+ ## Spork
59
+
60
+ To get this gem to work with Spork, all you need to do is move the `start_original_sunspot_session`
61
+ line out of the `RSpec.configure` block:
62
+
63
+ ```ruby
64
+ $original_sunspot_session = Sunspot.session
65
+ Sunspot::Rails::Tester.start_original_sunspot_session
66
+
67
+ RSpec.configure do |config|
68
+ config.before do
69
+ Sunspot.session = Sunspot::Rails::StubSessionProxy.new($original_sunspot_session)
70
+ end
71
+
72
+ config.before :each, :solr => true do
73
+ Sunspot.session = $original_sunspot_session
74
+ Sunspot.remove_all!
75
+ end
76
+ end
77
+ ```
78
+
54
79
  ## Thanks
55
80
 
56
81
  The following articles served as guidance and inspiration for this gem:
@@ -64,4 +89,4 @@ sunspot-rails-tester is released under the MIT license. See LICENSE for details.
64
89
 
65
90
  ## Copyright
66
91
 
67
- Copyright (c) 2011 Justin Ko
92
+ Copyright (c) 2011 Justin Ko
@@ -4,7 +4,7 @@ require 'forwardable'
4
4
  module Sunspot
5
5
  module Rails
6
6
  class Tester
7
- VERSION = '0.0.4'
7
+ VERSION = '1.0.0'
8
8
 
9
9
  class << self
10
10
  extend Forwardable
@@ -16,8 +16,10 @@ Gem::Specification.new do |s|
16
16
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
17
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
18
  s.require_path = 'lib'
19
-
20
- s.add_dependency 'sunspot_rails', '~> 1.2'
21
-
19
+
20
+ s.add_dependency 'sunspot_rails', '>= 1.2'
21
+ s.add_dependency 'sunspot_solr', '>= 1.2'
22
+
22
23
  s.add_development_dependency 'rspec', '~> 2.5'
24
+ s.add_development_dependency 'rake'
23
25
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sunspot-rails-tester
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,43 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-09-19 00:00:00.000000000Z
12
+ date: 2013-04-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sunspot_rails
16
- requirement: &70167858116280 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ~>
19
+ - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
21
  version: '1.2'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70167858116280
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '1.2'
30
+ - !ruby/object:Gem::Dependency
31
+ name: sunspot_solr
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '1.2'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '1.2'
25
46
  - !ruby/object:Gem::Dependency
26
47
  name: rspec
27
- requirement: &70167858114520 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
28
49
  none: false
29
50
  requirements:
30
51
  - - ~>
@@ -32,7 +53,28 @@ dependencies:
32
53
  version: '2.5'
33
54
  type: :development
34
55
  prerelease: false
35
- version_requirements: *70167858114520
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '2.5'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rake
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
36
78
  description: Enable sunspot during testing for *real* integration tests
37
79
  email: jko170@gmail.com
38
80
  executables: []
@@ -64,7 +106,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
64
106
  version: '0'
65
107
  segments:
66
108
  - 0
67
- hash: 4517959942885982300
109
+ hash: 1064628380868785239
68
110
  required_rubygems_version: !ruby/object:Gem::Requirement
69
111
  none: false
70
112
  requirements:
@@ -73,10 +115,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
115
  version: '0'
74
116
  segments:
75
117
  - 0
76
- hash: 4517959942885982300
118
+ hash: 1064628380868785239
77
119
  requirements: []
78
120
  rubyforge_project:
79
- rubygems_version: 1.8.10
121
+ rubygems_version: 1.8.23
80
122
  signing_key:
81
123
  specification_version: 3
82
124
  summary: Stub sunspot when you want, and enable it when you want