sunspot-rails-tester 0.0.4 → 1.0.0

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