rspec-steps 0.2.0 → 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 +14 -6
- data/lib/rspec-steps/duckpunch/example-group.rb +5 -3
- data/lib/rspec-steps/duckpunch/object-extensions.rb +0 -1
- data/lib/rspec-steps/stepwise.rb +38 -5
- data/spec_help/rspec-sandbox.rb +2 -44
- metadata +15 -16
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MmRjMzBjYzJhZjg1M2Q3OTJiMWNjZTk1ZTk1ZGZmZGFmZTAyOGRiNQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZTU5OTM2Y2M0MDI5YmMyOWZiMDM0NzY3NTEyNTNhNWI5NDlhOGMyMA==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
N2M0ODJiYzE4ZDdjNmE4MjcwMTNmNDU5MGE4MTZjODE0MWRhYTIwYmI5MjI4
|
10
|
+
ZjU3ZGU3NjZhZmQ0NTdiZjQyMWIyYmViMjg5ZDA1NWE4NTk0NWJjZmI2NDJh
|
11
|
+
YjQ2MDRiMjNkODlmMDk1OTMzZjQyZWU2MzQzMDY3YjczMjViOGQ=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
OWU3MmZmNzAxZjQyOWQ5OWJhOTY1MzI1NTNjMzJhZmI5NjAyY2Q0NTk3NjJk
|
14
|
+
NmM0YzMyNTUxMWQwMmU3ZDNiMDg0ZGFhZjQxMzE4NDdmN2U1NTdhNzg2Y2U5
|
15
|
+
OWM0MzZlMzFkY2U5YTMzZDc1MjllMmI3M2U1YjVhNDMzMDFlM2Q=
|
@@ -2,7 +2,7 @@ require 'rspec/core'
|
|
2
2
|
require 'rspec-steps/stepwise'
|
3
3
|
|
4
4
|
module RSpec::Steps
|
5
|
-
module
|
5
|
+
module DSL
|
6
6
|
def steps(*args, &block)
|
7
7
|
options =
|
8
8
|
if args.last.is_a?(Hash)
|
@@ -19,7 +19,9 @@ module RSpec::Steps
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
RSpec::Core::ExampleGroup.extend RSpec::Steps::
|
23
|
-
|
22
|
+
RSpec::Core::ExampleGroup.extend RSpec::Steps::DSL
|
23
|
+
|
24
|
+
extend RSpec::Steps::DSL
|
25
|
+
Module::send(:include, RSpec::Steps::DSL)
|
24
26
|
|
25
27
|
RSpec::configuration.include(RSpecStepwise, :stepwise => true)
|
data/lib/rspec-steps/stepwise.rb
CHANGED
@@ -45,6 +45,8 @@ module RSpecStepwise
|
|
45
45
|
module StepExample
|
46
46
|
def run_before_each
|
47
47
|
@example_group_class.run_before_step(self)
|
48
|
+
rescue Object => ex
|
49
|
+
puts "\n#{__FILE__}:#{__LINE__} => #{[ex, ex.backtrace].pretty_inspect}"
|
48
50
|
end
|
49
51
|
|
50
52
|
def run_after_each
|
@@ -74,12 +76,27 @@ module RSpecStepwise
|
|
74
76
|
end
|
75
77
|
end
|
76
78
|
|
79
|
+
def build_before_hook(options, &block)
|
80
|
+
if defined? RSpec::Core::Hooks::BeforeHookExtension
|
81
|
+
block.extend(RSpec::Core::Hooks::BeforeHookExtension).with(options)
|
82
|
+
else
|
83
|
+
RSpec::Core::Hooks::BeforeHook.new(block, options)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def build_after_hook(options, &block)
|
88
|
+
if defined? RSpec::Core::Hooks::AfterHookExtension
|
89
|
+
block.extend(RSpec::Core::Hooks::AfterHookExtension).with(options)
|
90
|
+
else
|
91
|
+
RSpec::Core::Hooks::AfterHook.new(block, options)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
77
95
|
def before(*args, &block)
|
78
96
|
if args.first == :step
|
79
97
|
args.shift
|
80
98
|
options = build_metadata_hash_from(args)
|
81
|
-
return ((hooks[:before][:step] ||= []) <<
|
82
|
-
block.extend(RSpec::Core::Hooks::BeforeHookExtension).with(options))
|
99
|
+
return ((hooks[:before][:step] ||= []) << build_before_hook(options, &block))
|
83
100
|
end
|
84
101
|
if args.first == :each
|
85
102
|
puts "before blocks declared for steps are always treated as :all scope"
|
@@ -92,7 +109,7 @@ module RSpecStepwise
|
|
92
109
|
args.shift
|
93
110
|
options = build_metadata_hash_from(args)
|
94
111
|
hooks[:after][:step] ||= []
|
95
|
-
return (hooks[:after][:step].unshift
|
112
|
+
return (hooks[:after][:step].unshift build_after_hook(options, &block))
|
96
113
|
end
|
97
114
|
if args.first == :each
|
98
115
|
puts "after blocks declared for steps are always treated as :all scope"
|
@@ -119,12 +136,28 @@ module RSpecStepwise
|
|
119
136
|
def next(*args, &block); example_synonym("next", *args, &block); end
|
120
137
|
def step(*args, &block); example_synonym("step", *args, &block); end
|
121
138
|
|
139
|
+
def run_step(example, hook, &sorting)
|
140
|
+
groups = if respond_to?(:parent_groups)
|
141
|
+
parent_groups
|
142
|
+
else
|
143
|
+
ancestors
|
144
|
+
end
|
145
|
+
|
146
|
+
if block_given?
|
147
|
+
groups = yield groups
|
148
|
+
end
|
149
|
+
|
150
|
+
RSpec::Core::Hooks::HookCollection.new(groups.map {|a| a.hooks[hook][:step]}.flatten.compact).for(example).run
|
151
|
+
end
|
152
|
+
|
122
153
|
def run_before_step(example)
|
123
|
-
|
154
|
+
run_step(example, :before)
|
124
155
|
end
|
125
156
|
|
126
157
|
def run_after_step(example)
|
127
|
-
|
158
|
+
run_step(example, :after) do |groups|
|
159
|
+
groups.reverse
|
160
|
+
end
|
128
161
|
end
|
129
162
|
|
130
163
|
def perform_steps(name, *args, &customization_block)
|
data/spec_help/rspec-sandbox.rb
CHANGED
@@ -19,6 +19,8 @@ def sandboxed(&block)
|
|
19
19
|
|
20
20
|
object = Object.new
|
21
21
|
object.extend(RSpec::Core::SharedExampleGroup)
|
22
|
+
object.extend(RSpec::Steps::DSL)
|
23
|
+
object.extend(RSpec::Core::DSL)
|
22
24
|
|
23
25
|
(class << RSpec::Core::ExampleGroup; self; end).class_eval do
|
24
26
|
alias_method :orig_run, :run
|
@@ -42,47 +44,3 @@ ensure
|
|
42
44
|
RSpec.instance_variable_set(:@configuration, @orig_config)
|
43
45
|
RSpec.instance_variable_set(:@world, @orig_world)
|
44
46
|
end
|
45
|
-
|
46
|
-
#Original from rspec-core
|
47
|
-
=begin
|
48
|
-
class << RSpec
|
49
|
-
alias_method :original_warn_about_deprecated_configure, :warn_about_deprecated_configure
|
50
|
-
|
51
|
-
def warn_about_deprecated_configure
|
52
|
-
# no-op: in our specs we don't want to see the warning.
|
53
|
-
end
|
54
|
-
|
55
|
-
alias_method :null_warn_about_deprecated_configure, :warn_about_deprecated_configure
|
56
|
-
|
57
|
-
def allowing_configure_warning
|
58
|
-
(class << self; self; end).class_eval do
|
59
|
-
alias_method :warn_about_deprecated_configure, :original_warn_about_deprecated_configure
|
60
|
-
begin
|
61
|
-
yield
|
62
|
-
ensure
|
63
|
-
alias_method :warn_about_deprecated_configure, :null_warn_about_deprecated_configure
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
RSpec.configure do |c|
|
70
|
-
c.color_enabled = !in_editor?
|
71
|
-
c.filter_run :focus => true
|
72
|
-
c.run_all_when_everything_filtered = true
|
73
|
-
c.filter_run_excluding :ruby => lambda {|version|
|
74
|
-
case version.to_s
|
75
|
-
when "!jruby"
|
76
|
-
RUBY_ENGINE == "jruby"
|
77
|
-
when /^> (.*)/
|
78
|
-
!(RUBY_VERSION.to_s > $1)
|
79
|
-
else
|
80
|
-
!(RUBY_VERSION.to_s =~ /^#{version.to_s}/)
|
81
|
-
end
|
82
|
-
}
|
83
|
-
c.around do |example|
|
84
|
-
sandboxed { example.run }
|
85
|
-
end
|
86
|
-
end
|
87
|
-
=begin
|
88
|
-
=end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-steps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Judson Lester
|
@@ -9,47 +9,46 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-01-
|
12
|
+
date: 2014-01-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: corundum
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - '>='
|
18
|
+
- - ! '>='
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: 0.0.25
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - '>='
|
25
|
+
- - ! '>='
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 0.0.25
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rspec
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - '>='
|
32
|
+
- - ! '>='
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '2.6'
|
35
35
|
- - <
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 2.
|
37
|
+
version: '2.99'
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
requirements:
|
42
|
-
- - '>='
|
42
|
+
- - ! '>='
|
43
43
|
- !ruby/object:Gem::Version
|
44
44
|
version: '2.6'
|
45
45
|
- - <
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 2.
|
48
|
-
description:
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
steps in a test.
|
47
|
+
version: '2.99'
|
48
|
+
description: ! " I don't like Cucumber. I don't need plain text stories. My clients
|
49
|
+
either\n read code or don't read any test documents, so Cucumber is mostly useless
|
50
|
+
to me.\n But often, especially in full integration tests, it would be nice to have\n
|
51
|
+
\ steps in a test.\n"
|
53
52
|
email:
|
54
53
|
- judson@lrdesign.com
|
55
54
|
- evan@lrdesign.com
|
@@ -315,17 +314,17 @@ rdoc_options:
|
|
315
314
|
- --main
|
316
315
|
- doc/README
|
317
316
|
- --title
|
318
|
-
- rspec-steps-0.
|
317
|
+
- rspec-steps-0.3.0 RDoc
|
319
318
|
require_paths:
|
320
319
|
- lib/
|
321
320
|
required_ruby_version: !ruby/object:Gem::Requirement
|
322
321
|
requirements:
|
323
|
-
- - '>='
|
322
|
+
- - ! '>='
|
324
323
|
- !ruby/object:Gem::Version
|
325
324
|
version: '0'
|
326
325
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
327
326
|
requirements:
|
328
|
-
- - '>='
|
327
|
+
- - ! '>='
|
329
328
|
- !ruby/object:Gem::Version
|
330
329
|
version: '0'
|
331
330
|
requirements: []
|