rspec-console 0.2.8 → 0.3.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.
- checksums.yaml +8 -8
- data/README.md +29 -10
- data/lib/rspec-console/runner.rb +23 -29
- data/lib/rspec-console/version.rb +1 -1
- data/lib/rspec-console.rb +37 -0
- metadata +4 -18
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MDFmNGZjYWY1NjQyYjNjZDcwZDg0NzIyOTA1ZjNkMmQ2ZWY5ZGRjYg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OGIxYjNjMTRmYzFiYTIzM2VkMWQ3YmVjMDkwNjFhMWM1N2JmNTQyMA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OGM4YThkNzM4MzEwZWFiZmNkMDY5Y2IwODk4YjIyMTViMDQ1NzJhM2JjMTY3
|
10
|
+
MjVlZjc3ODgxMDdlOGJhMDFkMDQzNjViNmUzZjNlYjk2ZjM0MGJmZTU1OWEz
|
11
|
+
ZmFhZWI2NDdiNDUzY2M1MzcxMWNjZTc2NDFjNmRiMTFjOWU4NjU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OTI0MDVmYzFlNmIwNGRkMTNiODdlYmY1NzI2NDViNGUzNDg0OWYyYjNlYzQx
|
14
|
+
MmYxNzFlYzIyMzU2NmRhZGQwZmZjMjg2MTk2ODZiMzM4MmZiMDhjMzk2NGI4
|
15
|
+
YTYwZTcyYjdlZDYxZmUwODk3NGRhY2M4MzEyYjJlMDExOTdmM2U=
|
data/README.md
CHANGED
@@ -11,19 +11,44 @@ Best served chilled with [irb-config](https://github.com/nviennot/irb-config).
|
|
11
11
|
Usage
|
12
12
|
------
|
13
13
|
|
14
|
-
Install
|
14
|
+
### 1) Install rspec-console with:
|
15
15
|
|
16
16
|
```ruby
|
17
17
|
gem 'rspec-console'
|
18
18
|
```
|
19
19
|
|
20
|
+
### 2) With Rails, disable cache\_classes so reload! function properly
|
21
|
+
|
22
|
+
Ensure you turned off Rails's `cache_classes` in the config/environment/test.rb file:
|
23
|
+
|
24
|
+
```ruby
|
25
|
+
Rails.application.configure do
|
26
|
+
# turn off this!
|
27
|
+
conig.cache_classes = false
|
28
|
+
end
|
29
|
+
|
30
|
+
### 3) Launch your console
|
31
|
+
|
32
|
+
With Rails, launch your console with `rails c test.
|
33
|
+
|
34
|
+
```
|
35
|
+
### 4) Launch your tests
|
36
|
+
|
20
37
|
If you have [Pry](https://github.com/pry/pry) installed, you will have access to the `rspec` command
|
21
38
|
in your console, which works exactly like the shell command line rspec one.
|
22
39
|
|
40
|
+
If you don't have pry, you can use:
|
23
41
|
|
42
|
+
```ruby
|
43
|
+
RSpecConsole.run 'spec/integration/closing_brand_action_spec.rb:33' '--format=doc'
|
24
44
|
```
|
25
|
-
|
26
|
-
|
45
|
+
|
46
|
+
Example
|
47
|
+
-------
|
48
|
+
|
49
|
+
```
|
50
|
+
pafy@bisou ~/prj/sniper [master●] % rails c test
|
51
|
+
~/prj/crowdtap/sniper (test) > rspec spec/integration/closing_brand_action_spec.rb:33 --format=doc
|
27
52
|
Run options: include {:locations=>{"./spec/integration/closing_brand_action_spec.rb"=>[33]}}
|
28
53
|
|
29
54
|
Sniper
|
@@ -32,13 +57,7 @@ Sniper
|
|
32
57
|
|
33
58
|
Finished in 0.12654 seconds
|
34
59
|
1 example, 0 failures
|
35
|
-
~/prj/crowdtap/sniper (
|
36
|
-
```
|
37
|
-
|
38
|
-
If you don't have pry, you can use:
|
39
|
-
|
40
|
-
```ruby
|
41
|
-
RSpecConsole.run 'spec/integration/closing_brand_action_spec.rb:33' '--format=doc'
|
60
|
+
~/prj/crowdtap/sniper (test) >
|
42
61
|
```
|
43
62
|
|
44
63
|
TODO
|
data/lib/rspec-console/runner.rb
CHANGED
@@ -1,40 +1,34 @@
|
|
1
1
|
class RSpecConsole::Runner
|
2
|
-
|
3
|
-
|
2
|
+
class << self
|
3
|
+
def reset(args)
|
4
|
+
require 'rspec/core'
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
6
|
+
if Gem.loaded_specs['rspec-core'].version < Gem::Version.new('2.9.10')
|
7
|
+
raise 'Please use RSpec 2.9.10 or later'
|
8
|
+
end
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
10
|
+
::RSpec::Core::Runner.disable_autorun!
|
11
|
+
::RSpec::Core::Configuration.class_eval { define_method(:command) { 'rspec' } }
|
12
|
+
::RSpec.reset
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
config_cache.cache do
|
15
|
+
::RSpec.configure do |config|
|
16
|
+
config.output_stream = STDOUT
|
17
|
+
config.color_enabled = true
|
18
|
+
end
|
18
19
|
|
19
|
-
|
20
|
+
require "./spec/spec_helper"
|
21
|
+
end
|
20
22
|
end
|
21
|
-
end
|
22
23
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
def self.run(args)
|
29
|
-
if defined?(Rails)
|
30
|
-
require 'rails-env-switcher'
|
31
|
-
RailsEnvSwitcher.with_env('test', :reload => true) { _run(args) }
|
32
|
-
else
|
33
|
-
_run(args)
|
24
|
+
def run(args)
|
25
|
+
RSpecConsole.hooks.each(&:call)
|
26
|
+
reset(args)
|
27
|
+
::RSpec::Core::CommandLine.new(args).run(STDERR, STDOUT)
|
34
28
|
end
|
35
|
-
end
|
36
29
|
|
37
|
-
|
38
|
-
|
30
|
+
def config_cache
|
31
|
+
@config_cache ||= RSpecConsole::ConfigCache.new
|
32
|
+
end
|
39
33
|
end
|
40
34
|
end
|
data/lib/rspec-console.rb
CHANGED
@@ -3,9 +3,46 @@ module RSpecConsole
|
|
3
3
|
autoload :Runner, 'rspec-console/runner'
|
4
4
|
autoload :Pry, 'rspec-console/pry'
|
5
5
|
|
6
|
+
class << self; attr_accessor :hooks; end
|
7
|
+
self.hooks = []
|
8
|
+
|
6
9
|
def self.run(*args)
|
7
10
|
Runner.run(args)
|
8
11
|
end
|
9
12
|
|
13
|
+
def self.register_hook(&hook)
|
14
|
+
self.hooks << hook
|
15
|
+
end
|
16
|
+
|
10
17
|
Pry.setup if defined?(::Pry)
|
18
|
+
|
19
|
+
# We only want the test env
|
20
|
+
register_hook do
|
21
|
+
if defined?(Rails) && !Rails.env.test?
|
22
|
+
raise "Rails env must be set as test (use `rails console test` to launch the console)."
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# Emit warning when reload cannot be called, or call reload!
|
27
|
+
register_hook do
|
28
|
+
if defined?(Rails)
|
29
|
+
if Rails.application.config.cache_classes
|
30
|
+
STDERR.puts <<-MSG
|
31
|
+
[WARNING]
|
32
|
+
Rails's cache_classes must be turned off.
|
33
|
+
Turn off in config/environments/test.rb:
|
34
|
+
|
35
|
+
Rails.application.configure do
|
36
|
+
conig.cache_classes = false
|
37
|
+
end
|
38
|
+
MSG
|
39
|
+
else
|
40
|
+
ActionDispatch::Reloader.cleanup!
|
41
|
+
ActionDispatch::Reloader.prepare!
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# Reloading FactoryGirl if necessary
|
47
|
+
register_hook { FactoryGirl.reload if defined?(FactoryGirl) }
|
11
48
|
end
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-console
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicolas Viennot
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
type: :runtime
|
15
|
-
prerelease: false
|
16
|
-
name: rails-env-switcher
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ! '>='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
type: :runtime
|
29
15
|
prerelease: false
|
@@ -59,11 +45,11 @@ executables: []
|
|
59
45
|
extensions: []
|
60
46
|
extra_rdoc_files: []
|
61
47
|
files:
|
62
|
-
- lib/rspec-console.rb
|
63
48
|
- lib/rspec-console/config_cache.rb
|
64
|
-
- lib/rspec-console/runner.rb
|
65
49
|
- lib/rspec-console/pry.rb
|
50
|
+
- lib/rspec-console/runner.rb
|
66
51
|
- lib/rspec-console/version.rb
|
52
|
+
- lib/rspec-console.rb
|
67
53
|
- README.md
|
68
54
|
homepage: http://github.com/nviennot/rspec-console
|
69
55
|
licenses: []
|