rspec-steps 1.0.7 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b804a788e4bfa076e61bc2a419b51c99e54b6c76
4
- data.tar.gz: 6ac4eb145511c37195bf5f5f6bbe0d8267206ef5
3
+ metadata.gz: 8fbf9522ba3036166a17ae71e60eff63d24d77fc
4
+ data.tar.gz: b0aad14fcaac8b60b5fc69336c24e3bd0be09f34
5
5
  SHA512:
6
- metadata.gz: b5cda2dabaeaad923da667d1df109a30e7c8db286497a77106985ed8a1a9b96ecd4bae74fe9a8ea646e11d00ff834a46ecd20d6214494ed40c1545e71e0415a9
7
- data.tar.gz: 58ba1df734ad86c78db857d4987676d93c76d53c83d9faf33c3b04ab4a08e7b479713b996a2eaaf4ba4e97b08cb8cf383368d4f7e7debc47463c5683350e203b
6
+ metadata.gz: a222f486e56ae73973c76035d0f487c03425c811d60d8243bf10cd5f6ec2be6992648e2173a1e3b6b246c47b3db6674977df07a121f7c4814a03ad2ce725754d
7
+ data.tar.gz: 3e2e14833e236be83cc92643f8700f2df5894075dbec2c702d5662a8f177991d392f78db7c9105d6009fec74218f65c9787157594658d2deaed3a672db60e752
data/doc/README CHANGED
@@ -13,33 +13,34 @@ https://github.com/LRDesign/two-step )
13
13
  One excellent example is web site integration tests. With RSpec steps you can
14
14
  do:
15
15
 
16
- steps "Login and change password" do
17
- it "should show the login form" do
18
- visit root
19
- page.should have_text "Login"
20
- end
21
-
22
- it "should successfully log in" do
23
- fill_in :name, "Johnny User"
24
- click "Login"
25
- page.should have_text "Welcome, Johnny!"
26
- end
27
-
28
- it "should load the password change form" do
29
- click "My Settings"
30
- click "Update Password"
31
- page.should have_selector("form#update_password")
32
- end
33
-
34
- it "should change the user's password successfully" do
35
- fill_in :password, "foobar"
36
- fill_in :password_confirmation, "foobar"
37
- click "Change Password"
38
- page.should have_text "Password changed successfully!"
39
- User.find_by_name("Johnny User").valid_password?("foobar").should be_true
40
- end
41
-
42
- end
16
+ ```ruby
17
+ RSpec::Steps.steps "Login and change password" do
18
+ it "should show the login form" do
19
+ visit root
20
+ page.should have_text "Login"
21
+ end
22
+
23
+ it "should successfully log in" do
24
+ fill_in :name, "Johnny User"
25
+ click "Login"
26
+ page.should have_text "Welcome, Johnny!"
27
+ end
28
+
29
+ it "should load the password change form" do
30
+ click "My Settings"
31
+ click "Update Password"
32
+ page.should have_selector("form#update_password")
33
+ end
34
+
35
+ it "should change the user's password successfully" do
36
+ fill_in :password, "foobar"
37
+ fill_in :password_confirmation, "foobar"
38
+ click "Change Password"
39
+ page.should have_text "Password changed successfully!"
40
+ User.find_by_name("Johnny User").valid_password?("foobar").should be_true
41
+ end
42
+ end
43
+ ```
43
44
 
44
45
  The examples above will be run in order. State is preserved between examples
45
46
  inside a "steps" block: any DB transactions will not roll back until the entire
@@ -56,8 +57,10 @@ almost all cases. BUT, that complete separation of examples really sucks when
56
57
  you're trying to write long stories involving many requests. You are usually
57
58
  stuck with three choices:
58
59
 
59
- 1. Write a sequence of examples, each of which repeats the behavior of all previous examples. Downside: horrendously inefficient.
60
- 2. Write a single huge example which performs the entire story. Downside: only one description, no independent reporting of the steps of the story.
60
+ 1. Write a sequence of examples, each of which repeats the behavior of all
61
+ previous examples. Downside: horrendously inefficient.
62
+ 2. Write a single huge example which performs the entire story. Downside: only
63
+ one description, no independent reporting of the steps of the story.
61
64
  3. Use Cucumber. Downside: We agree totally with this guy: http://bit.ly/dmXqnY
62
65
 
63
66
  RSpec-steps intentionally breaks RSpec's "independent" philosophy to let us get the
@@ -66,14 +69,25 @@ and skip subsequent steps after a failure.
66
69
 
67
70
  ## Caveats and cautions
68
71
 
69
- Don't call "describe" inside of "steps". The behavior is undefined and probably bad. It's
70
- hard to imagine what this should actually mean in any case. Future versions of rspec-steps
71
- will consider this an error.
72
+ Don't call "describe" inside of "steps". As of 2.0, this is an error.
73
+
74
+ As of 2.0, Steps no longer automatically adds its DSL to the top level. If you
75
+ want that behavior (especially if you're updating an older project) add:
76
+
77
+ ```
78
+ require 'rspec-steps/monkeypatching'
79
+ ```
80
+ to e.g. `spec_helper.rb.`
81
+
82
+ If you're using RSpec-Steps with Rails (for instance, with Capybara), you will
83
+ absolutely need to make sure you have transactional fixtures off. Otherwise,
84
+ you'll experience problems where the tests and the application appear to see
85
+ completely different databases.
72
86
 
73
- Any call to "before" inside a steps block is treated like before(:all) and is run only
74
- once before the first step. Or perhaps more accurately, any call to before() is treated
75
- like before(:each) ... but for these purposes the entire steps block is treated like a
76
- single example.
87
+ While Steps 2.0 retains it's shift in lifecycle hooks (:each become :all,
88
+ there's a :step hook), this shift *no longer* applies to config.before _et al_
89
+ -- you'll need to use config.before :each to run around each step. This is the
90
+ primary change to the Steps interface that called for a major version bump.
77
91
 
78
92
  ## Advanced stuff: shared steps
79
93
 
@@ -110,9 +124,8 @@ diverge, you can DRY your code out with shared_steps blocks, like so:
110
124
 
111
125
  ## Versions and Dependencies
112
126
 
113
- The goal (sadly unfulfilled) is to try to be compatible with as many versions
114
- of RSpec 3.x as possible. Frankly, Rspec-Steps is more than a little bit of a
115
- hack, and intrudes wholesale on RSpec's private interfaces.
127
+ The goal is to try to be compatible with as many versions
128
+ of RSpec 3.x as possible.
116
129
 
117
130
  We make good use of Travis to check compatibility, however. You can check what
118
131
  versions of RSpec and Ruby RSpec-Steps works with here:
@@ -1,4 +1,8 @@
1
- require 'rspec-steps/duckpunch/object-extensions'
2
- require 'rspec-steps/duckpunch/example-group'
3
- require 'rspec-steps/duckpunch/example'
4
- require 'rspec-steps/duckpunch/hooks'
1
+ require 'rspec'
2
+ require 'rspec-steps/dsl'
3
+
4
+ module RSpec
5
+ extend RSpec::Steps::DSL
6
+ end
7
+
8
+ # open question: add steps to top level?
@@ -0,0 +1,23 @@
1
+ module RSpec::Steps
2
+ class Builder
3
+ def initialize(describer)
4
+ @describer = describer
5
+ end
6
+
7
+ def build_example_group
8
+ describer = @describer
9
+
10
+ RSpec.describe(*describer.group_args, describer.metadata) do
11
+ describer.let_list.each do |letter|
12
+ letter.define_on(describer.step_list, self)
13
+ end
14
+ describer.hooks.each do |hook|
15
+ hook.define_on(self)
16
+ end
17
+ describer.step_list.each do |step|
18
+ step.define_on(describer.step_list, self)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,78 @@
1
+ require 'rspec-steps/dsl'
2
+ require 'rspec-steps/step'
3
+ require 'rspec-steps/hook'
4
+ require 'rspec-steps/step-list'
5
+ require 'rspec-steps/lets'
6
+
7
+ module RSpec::Steps
8
+
9
+ class Describer
10
+ def initialize(args, metadata, &block)
11
+ @group_args = args
12
+ @metadata = {}
13
+ if @group_args.last.is_a? Hash
14
+ @metadata = @group_args.pop
15
+ end
16
+ @metadata = metadata.merge(@metadata)
17
+ @step_list = StepList.new
18
+ @hooks = []
19
+ @let_list = []
20
+ instance_eval(&block)
21
+ end
22
+ attr_reader :group_args, :let_list, :step_list, :hooks, :metadata
23
+
24
+ def step(*args, &action)
25
+ metadata = {}
26
+ if args.last.is_a? Hash
27
+ metadata = args.pop
28
+ end
29
+
30
+ metadata = {
31
+ :caller => caller
32
+ }.merge(metadata)
33
+
34
+ @step_list << Step.new(metadata, args, action)
35
+ end
36
+ alias when step
37
+ alias then step
38
+ alias next step
39
+ alias it step
40
+
41
+ def shared_steps(*args, &block)
42
+ name = args.first
43
+ raise "shared step lists need a String for a name" unless name.is_a? String
44
+ raise "there is already a step list named #{name}" if SharedSteps.has_key?(name)
45
+ SharedSteps[name] = Describer.new(args, {:caller => caller}, &block)
46
+ end
47
+
48
+ def perform_steps(name)
49
+ describer = SharedSteps.fetch(name)
50
+ @hooks += describer.hooks
51
+ @step_list += describer.step_list
52
+ end
53
+
54
+ def let(name, &block)
55
+ @let_list << Let.new(name, block)
56
+ end
57
+
58
+ def let!(name, &block)
59
+ @let_list << LetBang.new(name, block)
60
+ end
61
+
62
+ def skip(*args)
63
+ #noop
64
+ end
65
+
66
+ def before(kind = :all, &callback)
67
+ @hooks << Hook.new(:before, kind, callback)
68
+ end
69
+
70
+ def after(kind = :all, &callback)
71
+ @hooks << Hook.new(:after, kind, callback)
72
+ end
73
+
74
+ def around(kind = :all, &callback)
75
+ @hooks << Hook.new(:around, kind, callback)
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,30 @@
1
+ require 'rspec-steps/builder'
2
+ require 'rspec-steps/describer'
3
+
4
+ module RSpec::Steps
5
+ def self.warnings
6
+ @warnings ||= Hash.new do |h,warning|
7
+ puts warning #should be warn, but RSpec complains
8
+ h[warning] = true
9
+ end
10
+ end
11
+
12
+ SharedSteps = {}
13
+
14
+ module DSL
15
+ def steps(*args, &block)
16
+ describer = Describer.new(args, {:caller => caller}, &block)
17
+ builder = Builder.new(describer)
18
+
19
+ builder.build_example_group
20
+ end
21
+
22
+ def shared_steps(*args, &block)
23
+ name = args.first
24
+ raise "shared step lists need a String for a name" unless name.is_a? String
25
+ raise "there is already a step list named #{name}" if SharedSteps.has_key?(name)
26
+ SharedSteps[name] = Describer.new(*args, &block)
27
+ end
28
+ end
29
+ extend DSL
30
+ end
@@ -0,0 +1,34 @@
1
+ require 'rspec-steps/dsl'
2
+
3
+ module RSpec::Steps
4
+ class Hook < Struct.new(:type, :kind, :action)
5
+ def rspec_kind
6
+ case kind
7
+ when :each
8
+ warn_about_promotion(type)
9
+ :all
10
+ when :step
11
+ :each
12
+ else
13
+ kind
14
+ end
15
+ end
16
+
17
+ def warn_about_promotion(scope_name)
18
+ RSpec::Steps.warnings[
19
+ "#{scope_name} :each blocks declared for steps are always treated as " +
20
+ ":all scope (it's possible you want #{scope_name} :step)"]
21
+ end
22
+
23
+ def define_on(example_group)
24
+ case type
25
+ when :before
26
+ example_group.before rspec_kind, &action
27
+ when :after
28
+ example_group.after rspec_kind, &action
29
+ when :around
30
+ example_group.around rspec_kind, &action
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,20 @@
1
+ module RSpec::Steps
2
+ class Let < Struct.new(:name, :block)
3
+ def define_on(step_list, group)
4
+ name = self.name
5
+ step_list.add_let(name, block)
6
+
7
+ group.let(name) do
8
+ step_list.let_memo(name, self)
9
+ end
10
+ end
11
+ end
12
+
13
+ class LetBang < Let
14
+ def define_on(step_list, group)
15
+ super
16
+
17
+ step_list.add_let_bang(name)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,84 @@
1
+ require 'rspec-steps/step-result'
2
+
3
+ module RSpec::Steps
4
+ class StepList
5
+ include Enumerable
6
+
7
+ def initialize
8
+ @steps = []
9
+ @let_bangs = []
10
+ @let_blocks = {}
11
+ @let_memos = Hash.new do |h,example|
12
+ h[example] = Hash.new do |h, let_name|
13
+ h[let_name] = example.instance_eval(&@let_blocks.fetch(let_name))
14
+ end
15
+ end
16
+ @results = nil
17
+ end
18
+ attr_accessor :steps
19
+
20
+ def add_let(name, block)
21
+ @let_blocks[name] = block
22
+ end
23
+
24
+ # In this case, we scope the caching of a let block to an
25
+ # example - which since the whole step list runs in a single example is
26
+ # fine. It would be more correct to build a result-set and cache lets
27
+ # there.
28
+ def let_memo(name, example)
29
+ @let_memos[example][name]
30
+ end
31
+
32
+ def add_let_bang(name)
33
+ @let_bangs << name
34
+ end
35
+
36
+ def add(step)
37
+ @steps << step
38
+ end
39
+ alias << add
40
+
41
+ def +(other)
42
+ result = StepList.new
43
+ result.steps = steps + other.steps
44
+ result
45
+ end
46
+
47
+ def each(&block)
48
+ @steps.each(&block)
49
+ end
50
+
51
+ def result_for(step)
52
+ @results[step]
53
+ end
54
+
55
+ def run_only_once(context_example)
56
+ return unless @results.nil?
57
+ failed_step = nil
58
+ @let_bangs.each do |let_name|
59
+ context_example.__send__(let_name)
60
+ end
61
+
62
+ @results = Hash[ @steps.map do |step|
63
+ [
64
+ step,
65
+ if failed_step.nil?
66
+ result = capture_result(step, context_example)
67
+ if result.failed?
68
+ failed_step = result
69
+ end
70
+ result
71
+ else
72
+ StepResult.new(step, nil, nil, failed_step)
73
+ end
74
+ ]
75
+ end ]
76
+ end
77
+
78
+ def capture_result(step, context_example)
79
+ StepResult.new(step, step.run_inside(context_example), nil, nil)
80
+ rescue BasicObject => ex
81
+ StepResult.new(step, nil, ex, nil)
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,23 @@
1
+ module RSpec::Steps
2
+ class StepResult < Struct.new(:step, :result, :exception, :failed_step)
3
+ def failed?
4
+ return (!exception.nil?)
5
+ end
6
+
7
+ def has_executed_successfully?
8
+ if failed_step.nil?
9
+ if exception.nil?
10
+ true
11
+ else
12
+ raise exception
13
+ end
14
+ else
15
+ raise failed_step.exception
16
+ end
17
+ end
18
+
19
+ def is_after_failed_step?
20
+ !!failed_step
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,24 @@
1
+ module RSpec::Steps
2
+ class Step < Struct.new(:metadata, :args, :action)
3
+ def initialize(*whatever)
4
+ super
5
+ @failed_step = nil
6
+ end
7
+ attr_accessor :failed_step
8
+
9
+ def define_on(step_list, example_group)
10
+ step = self
11
+ example_group.it(*args, metadata) do |example|
12
+ step_list.run_only_once(self)
13
+ result = step_list.result_for(step)
14
+ pending if result.is_after_failed_step?
15
+ expect(result).to have_executed_successfully
16
+ end
17
+ end
18
+
19
+ def run_inside(example)
20
+ example.instance_eval(&action)
21
+ end
22
+
23
+ end
24
+ end
@@ -2,24 +2,31 @@ require 'rspec-steps'
2
2
  require 'rspec-sandbox'
3
3
 
4
4
  describe RSpec::Core::ExampleGroup do
5
- describe "::steps" do
6
- it "should create an ExampleGroup that includes RSpec::Stepwise" do
5
+ describe "with Stepwise included" do
6
+ it "should retain instance variables between steps" do
7
7
  group = nil
8
8
  sandboxed do
9
9
  group = RSpec.steps "Test Steps" do
10
+ it("sets @a"){ @a = 1 }
11
+ it("reads @a"){ @a.should == 1}
10
12
  end
13
+ group.run
14
+ end
15
+
16
+ group.examples.each do |example|
17
+ expect(example.metadata[:execution_result].status).to eq(:passed)
11
18
  end
12
- expect((class << group; self; end).included_modules).to include(RSpecStepwise::ClassMethods)
13
19
  end
14
- end
15
20
 
16
- describe "with Stepwise included" do
17
- it "should retain instance variables between steps" do
21
+ it "should define let blocks correctly" do
18
22
  group = nil
19
23
  sandboxed do
20
24
  group = RSpec.steps "Test Steps" do
21
- it("sets @a"){ @a = 1 }
22
- it("reads @a"){ @a.should == 1}
25
+ let! :array do [] end
26
+ let :number do 17 end
27
+ it("adds number to array"){ array << number }
28
+ it("adds number to array twice"){ array << number }
29
+ it("checks array"){ expect(array).to eq([17,17])}
23
30
  end
24
31
  group.run
25
32
  end
@@ -153,7 +160,6 @@ describe RSpec::Core::ExampleGroup do
153
160
  end
154
161
 
155
162
  it "should not allow nested normal contexts" do
156
- pending "A correct approach - in the meantime, this behavior is undefined"
157
163
  expect {
158
164
  sandboxed do
159
165
  RSpec.steps "Basic" do
@@ -161,7 +167,7 @@ describe RSpec::Core::ExampleGroup do
161
167
  end
162
168
  end
163
169
  end
164
- }.to raise_error
170
+ }.to raise_error(NoMethodError)
165
171
  end
166
172
  end
167
173
  end
@@ -24,8 +24,7 @@ module Sandboxing
24
24
  @orig_example = RSpec.current_example
25
25
  new_config = RSpec::Core::Configuration.new
26
26
  new_config.expose_dsl_globally = false
27
- new_config.expecting_with_rspec = true
28
- new_config.include(RSpecStepwise, :stepwise => true)
27
+ #new_config.expecting_with_rspec = true rescue nil
29
28
  new_world = RSpec::Core::World.new(new_config)
30
29
  RSpec.configuration = new_config
31
30
  RSpec.world = new_world
@@ -43,6 +42,9 @@ module Sandboxing
43
42
  RSpec::Mocks.with_temporary_scope do
44
43
  object.instance_exec(&block)
45
44
  end
45
+ # rescue BasicObject => ex
46
+ # puts "\n#{__FILE__}:#{__LINE__} => #{ex.inspect}"
47
+ # raise
46
48
  ensure
47
49
  (class << RSpec::Core::ExampleGroup; self; end).class_exec do
48
50
  remove_method :run
@@ -1,3 +1,8 @@
1
1
  require 'rspec'
2
2
 
3
+ begin
4
+ require 'cadre'
5
+ rescue LoadError
6
+ end
7
+
3
8
  #Ungemmer::ungem_gemspec
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: 1.0.7
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Judson Lester
@@ -9,54 +9,54 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-12-31 00:00:00.000000000 Z
12
+ date: 2015-09-21 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.4.0
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.4.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: metric_fu
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ~>
32
+ - - "~>"
33
33
  - !ruby/object:Gem::Version
34
34
  version: 4.11.1
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ~>
39
+ - - "~>"
40
40
  - !ruby/object:Gem::Version
41
41
  version: 4.11.1
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rspec
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - '>='
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
48
  version: '3.0'
49
- - - <
49
+ - - "<"
50
50
  - !ruby/object:Gem::Version
51
51
  version: '3.99'
52
52
  type: :runtime
53
53
  prerelease: false
54
54
  version_requirements: !ruby/object:Gem::Requirement
55
55
  requirements:
56
- - - '>='
56
+ - - ">="
57
57
  - !ruby/object:Gem::Version
58
58
  version: '3.0'
59
- - - <
59
+ - - "<"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '3.99'
62
62
  description: |2
@@ -189,162 +189,165 @@ extra_rdoc_files:
189
189
  - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-satisfy_rb.html
190
190
  - doc/coverage/lib-rspec-steps-duckpunch-object-extensions_rb.html
191
191
  files:
192
- - lib/rspec-steps.rb
193
- - lib/rspec-steps/stepwise.rb
194
- - lib/rspec-steps/duckpunch/example-group.rb
195
- - lib/rspec-steps/duckpunch/example.rb
196
- - lib/rspec-steps/duckpunch/hooks.rb
197
- - lib/rspec-steps/duckpunch/object-extensions.rb
198
192
  - doc/README
199
193
  - doc/Specifications
200
- - spec/example_group_spec.rb
201
- - spec_help/spec_helper.rb
202
- - spec_help/gem_test_suite.rb
203
- - spec_help/rspec-sandbox.rb
204
- - spec_help/ungemmer.rb
205
- - spec_help/file-sandbox.rb
206
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-include_rb.html
207
- - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-errors_rb.html
208
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-monkey-spork-test_framework-rspec_rb.html
209
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-equal_rb.html
210
- - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-space_rb.html
211
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-command_line_configuration_rb.html
212
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-be_rb.html
213
- - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-extensions-instance_exec_rb.html
214
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-subject_rb.html
215
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-change_rb.html
216
- - doc/coverage/rcov.js
217
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-let_rb.html
218
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-deprecation_rb.html
219
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-metadata_rb.html
220
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-block_aliases_rb.html
221
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-respond_to_rb.html
222
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-throw_symbol_rb.html
223
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-method_missing_rb.html
224
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-extensions-array_rb.html
225
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-option_parser_rb.html
194
+ - doc/coverage/index.html
226
195
  - doc/coverage/jquery-1.3.2.min.js
196
+ - doc/coverage/jquery.tablesorter.min.js
197
+ - doc/coverage/lib-rspec-steps-duckpunch-example-group_rb.html
198
+ - doc/coverage/lib-rspec-steps-duckpunch-object-extensions_rb.html
227
199
  - doc/coverage/lib-rspec-steps-stepwise_rb.html
228
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers_rb.html
229
- - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-message_expectation_rb.html
230
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-match_rb.html
231
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-fail_with_rb.html
232
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-example_group_rb.html
233
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-dsl_rb.html
200
+ - doc/coverage/lib-rspec-steps_rb.html
201
+ - doc/coverage/print.css
202
+ - doc/coverage/rcov-ruby-1_8-gems-diff-lcs-1_1_2-lib-diff-lcs-block_rb.html
203
+ - doc/coverage/rcov-ruby-1_8-gems-diff-lcs-1_1_2-lib-diff-lcs-callbacks_rb.html
204
+ - doc/coverage/rcov-ruby-1_8-gems-diff-lcs-1_1_2-lib-diff-lcs-change_rb.html
234
205
  - doc/coverage/rcov-ruby-1_8-gems-diff-lcs-1_1_2-lib-diff-lcs-hunk_rb.html
235
- - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-serialization_rb.html
206
+ - doc/coverage/rcov-ruby-1_8-gems-diff-lcs-1_1_2-lib-diff-lcs_rb.html
207
+ - doc/coverage/rcov-ruby-1_8-gems-rcov-0_9_9-lib-rcov-code_coverage_analyzer_rb.html
208
+ - doc/coverage/rcov-ruby-1_8-gems-rcov-0_9_9-lib-rcov-differential_analyzer_rb.html
209
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-2_5_0-lib-rspec-version_rb.html
210
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-2_5_0-lib-rspec_rb.html
211
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-backward_compatibility_rb.html
212
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-command_line_configuration_rb.html
213
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-command_line_rb.html
236
214
  - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-configuration_options_rb.html
237
215
  - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-configuration_rb.html
238
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-exist_rb.html
216
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-deprecation_rb.html
217
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-drb_command_line_rb.html
218
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-errors_rb.html
219
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-example_group_rb.html
220
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-example_rb.html
221
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-expecting-with_rspec_rb.html
222
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-extensions-instance_eval_with_args_rb.html
223
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-extensions-kernel_rb.html
224
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-extensions-module_eval_with_args_rb.html
225
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-extensions-object_rb.html
239
226
  - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-extensions_rb.html
240
227
  - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-formatters-base_formatter_rb.html
241
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-runner_rb.html
242
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations_rb.html
243
- - doc/coverage/index.html
244
- - doc/coverage/jquery.tablesorter.min.js
245
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-pretty_rb.html
246
- - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks_rb.html
247
- - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-spec_methods_rb.html
248
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-matcher_rb.html
249
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-have_rb.html
250
- - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-argument_matchers_rb.html
228
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-formatters-base_text_formatter_rb.html
229
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-formatters-documentation_formatter_rb.html
230
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-formatters-helpers_rb.html
231
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-hooks_rb.html
232
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-let_rb.html
233
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-load_path_rb.html
234
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-metadata_rb.html
235
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-mocking-with_rspec_rb.html
236
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-option_parser_rb.html
251
237
  - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-pending_rb.html
238
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-reporter_rb.html
239
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-ruby_project_rb.html
240
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-runner_rb.html
241
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-shared_context_rb.html
252
242
  - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-shared_example_group_rb.html
243
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-subject_rb.html
244
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-version_rb.html
245
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-world_rb.html
246
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core_rb.html
247
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-monkey-spork-test_framework-rspec_rb.html
248
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-monkey_rb.html
249
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-backward_compatibility_rb.html
250
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-deprecation_rb.html
251
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-differ_rb.html
252
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-errors_rb.html
253
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-extensions-array_rb.html
254
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-extensions-kernel_rb.html
255
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-extensions_rb.html
256
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-fail_with_rb.html
257
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-handler_rb.html
258
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-version_rb.html
259
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations_rb.html
253
260
  - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-be_close_rb.html
254
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-drb_command_line_rb.html
255
- - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-version_rb.html
261
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-be_instance_of_rb.html
262
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-be_kind_of_rb.html
263
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-be_rb.html
264
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-be_within_rb.html
265
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-block_aliases_rb.html
266
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-change_rb.html
256
267
  - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-compatibility_rb.html
268
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-dsl_rb.html
269
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-eq_rb.html
257
270
  - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-eql_rb.html
258
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-command_line_rb.html
259
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-expecting-with_rspec_rb.html
260
- - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-mock_rb.html
261
- - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-order_group_rb.html
262
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-formatters-documentation_formatter_rb.html
271
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-equal_rb.html
272
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-errors_rb.html
273
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-exist_rb.html
274
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-extensions-instance_exec_rb.html
275
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-generated_descriptions_rb.html
276
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-has_rb.html
277
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-have_rb.html
278
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-include_rb.html
263
279
  - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-match_array_rb.html
264
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-extensions-kernel_rb.html
265
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-extensions-kernel_rb.html
280
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-match_rb.html
281
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-matcher_rb.html
282
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-method_missing_rb.html
283
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-operator_matcher_rb.html
284
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-pretty_rb.html
285
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-raise_error_rb.html
286
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-respond_to_rb.html
287
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-satisfy_rb.html
288
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-throw_symbol_rb.html
289
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers_rb.html
266
290
  - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-argument_expectation_rb.html
267
- - doc/coverage/rcov-ruby-1_8-gems-rcov-0_9_9-lib-rcov-code_coverage_analyzer_rb.html
291
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-argument_matchers_rb.html
292
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-error_generator_rb.html
293
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-errors_rb.html
294
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-extensions-instance_exec_rb.html
268
295
  - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-extensions-marshal_rb.html
269
- - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-proxy_rb.html
270
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-extensions_rb.html
271
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-hooks_rb.html
272
- - doc/coverage/rcov-ruby-1_8-gems-rspec-2_5_0-lib-rspec_rb.html
273
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-version_rb.html
274
- - doc/coverage/rcov-ruby-1_8-gems-diff-lcs-1_1_2-lib-diff-lcs-callbacks_rb.html
275
296
  - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-framework_rb.html
276
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-reporter_rb.html
277
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-extensions-module_eval_with_args_rb.html
278
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-load_path_rb.html
279
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-formatters-helpers_rb.html
280
- - doc/coverage/lib-rspec-steps_rb.html
281
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-errors_rb.html
282
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-be_instance_of_rb.html
283
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-backward_compatibility_rb.html
284
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-version_rb.html
285
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-deprecation_rb.html
286
- - doc/coverage/rcov-ruby-1_8-gems-rcov-0_9_9-lib-rcov-differential_analyzer_rb.html
287
- - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-error_generator_rb.html
288
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-eq_rb.html
289
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-has_rb.html
297
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-message_expectation_rb.html
298
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-method_double_rb.html
290
299
  - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-methods_rb.html
291
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-differ_rb.html
292
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-extensions-instance_eval_with_args_rb.html
293
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-extensions-instance_exec_rb.html
294
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-raise_error_rb.html
295
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-handler_rb.html
296
- - doc/coverage/rcov-ruby-1_8-gems-diff-lcs-1_1_2-lib-diff-lcs-block_rb.html
297
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-be_within_rb.html
298
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-shared_context_rb.html
299
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-be_kind_of_rb.html
300
- - doc/coverage/rcov-ruby-1_8-gems-rspec-2_5_0-lib-rspec-version_rb.html
301
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-formatters-base_text_formatter_rb.html
302
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-monkey_rb.html
303
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-ruby_project_rb.html
304
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core_rb.html
305
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-operator_matcher_rb.html
306
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-generated_descriptions_rb.html
307
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-errors_rb.html
308
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-mocking-with_rspec_rb.html
309
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-extensions-object_rb.html
310
- - doc/coverage/lib-rspec-steps-duckpunch-example-group_rb.html
311
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-errors_rb.html
312
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-expectations-backward_compatibility_rb.html
313
- - doc/coverage/rcov-ruby-1_8-gems-diff-lcs-1_1_2-lib-diff-lcs-change_rb.html
314
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-world_rb.html
315
- - doc/coverage/rcov-ruby-1_8-gems-rspec-core-2_5_1-lib-rspec-core-example_rb.html
316
- - doc/coverage/rcov-ruby-1_8-gems-diff-lcs-1_1_2-lib-diff-lcs_rb.html
300
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-mock_rb.html
301
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-order_group_rb.html
302
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-proxy_rb.html
303
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-serialization_rb.html
304
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-space_rb.html
305
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-spec_methods_rb.html
306
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-version_rb.html
307
+ - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks_rb.html
308
+ - doc/coverage/rcov.js
317
309
  - doc/coverage/screen.css
318
- - doc/coverage/rcov-ruby-1_8-gems-rspec-mocks-2_5_0-lib-rspec-mocks-method_double_rb.html
319
- - doc/coverage/print.css
320
- - doc/coverage/rcov-ruby-1_8-gems-rspec-expectations-2_5_0-lib-rspec-matchers-satisfy_rb.html
321
- - doc/coverage/lib-rspec-steps-duckpunch-object-extensions_rb.html
310
+ - lib/rspec-steps.rb
311
+ - lib/rspec-steps/builder.rb
312
+ - lib/rspec-steps/describer.rb
313
+ - lib/rspec-steps/dsl.rb
314
+ - lib/rspec-steps/hook.rb
315
+ - lib/rspec-steps/lets.rb
316
+ - lib/rspec-steps/step-list.rb
317
+ - lib/rspec-steps/step-result.rb
318
+ - lib/rspec-steps/step.rb
319
+ - spec/example_group_spec.rb
320
+ - spec_help/file-sandbox.rb
321
+ - spec_help/gem_test_suite.rb
322
+ - spec_help/rspec-sandbox.rb
323
+ - spec_help/spec_helper.rb
324
+ - spec_help/ungemmer.rb
322
325
  homepage: https://github.com/LRDesign/rspec-steps
323
326
  licenses:
324
327
  - MIT
325
328
  metadata: {}
326
329
  post_install_message:
327
330
  rdoc_options:
328
- - --inline-source
329
- - --main
331
+ - "--inline-source"
332
+ - "--main"
330
333
  - doc/README
331
- - --title
332
- - rspec-steps-1.0.7 RDoc
334
+ - "--title"
335
+ - rspec-steps-2.0.0 RDoc
333
336
  require_paths:
334
337
  - lib/
335
338
  required_ruby_version: !ruby/object:Gem::Requirement
336
339
  requirements:
337
- - - '>='
340
+ - - ">="
338
341
  - !ruby/object:Gem::Version
339
342
  version: '0'
340
343
  required_rubygems_version: !ruby/object:Gem::Requirement
341
344
  requirements:
342
- - - '>='
345
+ - - ">="
343
346
  - !ruby/object:Gem::Version
344
347
  version: '0'
345
348
  requirements: []
346
349
  rubyforge_project: rspec-steps
347
- rubygems_version: 2.0.14
350
+ rubygems_version: 2.4.8
348
351
  signing_key:
349
352
  specification_version: 3
350
353
  summary: I want steps in RSpec
@@ -1,33 +0,0 @@
1
- require 'rspec/core'
2
- require 'rspec-steps/stepwise'
3
-
4
- if RSpec.configuration.respond_to? :alias_example_group_to
5
- RSpec.configuration.alias_example_group_to :steps, :stepwise => true
6
- else
7
- module RSpec::Steps
8
- module DSL
9
- def steps(*args, &block)
10
- options =
11
- if args.last.is_a?(Hash)
12
- args.pop
13
- else
14
- {}
15
- end
16
- options[:stepwise] = true
17
- options[:caller] ||= caller
18
- args.push(options)
19
-
20
- describe(*args, &block)
21
- end
22
- end
23
- end
24
-
25
- [RSpec::Core::ExampleGroup, RSpec, self].each do |mod|
26
- mod.extend RSpec::Steps::DSL
27
- end
28
- Module::send(:include, RSpec::Steps::DSL)
29
- end
30
-
31
- RSpec::configure do |config|
32
- config.include(RSpecStepwise, :stepwise => true)
33
- end
@@ -1,5 +0,0 @@
1
- RSpec::Core::Example.class_eval do
2
- def exception
3
- @exception
4
- end
5
- end
@@ -1,15 +0,0 @@
1
- require 'rspec/core/hooks'
2
-
3
- module RSpec::Core::Hooks
4
- class HookCollections
5
- SCOPES << :step
6
-
7
- def initialize(owner, data)
8
- @owner = owner
9
- @data = data.merge(
10
- :before => data[:before].merge(:step => HookCollection.new),
11
- :after => data[:after ].merge(:step => HookCollection.new)
12
- )
13
- end
14
- end
15
- end
@@ -1,18 +0,0 @@
1
- require 'rspec-steps/duckpunch/example-group'
2
- require 'rspec-steps/stepwise'
3
- require 'rspec/core/shared_example_group'
4
-
5
- module RSpec::Core::SharedExampleGroup
6
- alias shared_steps shared_examples
7
- if respond_to? :share_as
8
- alias steps_shared_as share_as
9
- end
10
- end
11
-
12
- [self, RSpec].each do |thing|
13
- if thing.respond_to? :shared_examples and not thing.respond_to? :shared_steps
14
- thing.instance_exec do
15
- alias shared_steps shared_examples
16
- end
17
- end
18
- end
@@ -1,273 +0,0 @@
1
- module RSpecStepwise
2
- class ApatheticReporter < ::RSpec::Core::Reporter
3
- def initialize
4
- @examples = []
5
- @failed_examples = []
6
- @pending_examples = []
7
- @duration = @start = @load_time = nil
8
- end
9
-
10
- #def notify(*args)
11
- #noop
12
- #end
13
- end
14
-
15
- class WholeListExample < RSpec::Core::Example
16
- def initialize(example_group_class, reporter, descriptions, metadata)
17
- super(example_group_class, descriptions, metadata)
18
- #@reporter = ApatheticReporter.new
19
- @reporter = reporter
20
- build_example_block
21
- end
22
-
23
- def start(reporter)
24
- super(@reporter)
25
- end
26
-
27
- def finish(reporter)
28
- super(@reporter)
29
- end
30
-
31
- def build_example_block
32
- #variables of concern: reporter, instance
33
- reporter = @reporter
34
- whole_list = self
35
- @example_block = proc do
36
- begin
37
- self.class.filtered_examples.inject(true) do |success, example|
38
- if RSpec.respond_to? :wants_to_quit
39
- break if RSpec.wants_to_quit
40
- else
41
- break if RSpec.world.wants_to_quit
42
- end
43
- example.extend StepExample
44
- unless success
45
- example.metadata[:skip] = "Previous step failed"
46
- RSpec::Core::Pending.mark_pending!(example, example.skip)
47
- end
48
- succeeded = with_indelible_ivars do
49
- example.run(self, reporter)
50
- end
51
- unless example.exception.nil?
52
- whole_list.set_exception(example.exception)
53
- end
54
-
55
- if self.class.fail_fast? && !succeeded
56
- if RSpec.respond_to? :wants_to_quit=
57
- RSpec.wants_to_quit = true
58
- else
59
- RSpec.world.wants_to_quit = true
60
- end
61
- end
62
- success && succeeded
63
- end
64
- end
65
- end
66
- end
67
- end
68
-
69
- module StepExample
70
- def run_before_each
71
- @example_group_class.run_before_step(self)
72
- rescue Object => ex
73
- puts "\n#{__FILE__}:#{__LINE__} => #{[ex, ex.backtrace].pretty_inspect}"
74
- end
75
- alias run_before_example run_before_each
76
-
77
- def run_after_each
78
- @example_group_class.run_after_step(self)
79
- end
80
- alias run_after_example run_after_each
81
-
82
- def with_around_hooks
83
- yield
84
- end
85
- end
86
-
87
- def self.warnings
88
- @warnings ||= Hash.new do |h,warning|
89
- puts warning #should be warn, but RSpec complains
90
- h[warning] = true
91
- end
92
- end
93
-
94
- module ClassMethods
95
- #This is hacky and needs a more general solution
96
- #Something like cloning the current conf and having RSpec::Stepwise::config ?
97
- def suspend_transactional_fixtures
98
- if self.respond_to? :use_transactional_fixtures
99
- begin
100
- old_val = self.use_transactional_fixtures
101
- self.use_transactional_fixtures = false
102
-
103
- yield
104
- ensure
105
- self.use_transactional_fixtures = old_val
106
- end
107
- else
108
- yield
109
- end
110
- end
111
-
112
- def build_before_hook(options, &block)
113
- if defined? RSpec::Core::Hooks::BeforeHookExtension
114
- block.extend(RSpec::Core::Hooks::BeforeHookExtension).with(options)
115
- else
116
- RSpec::Core::Hooks::BeforeHook.new(block, options)
117
- end
118
- end
119
-
120
- def build_after_hook(options, &block)
121
- if defined? RSpec::Core::Hooks::AfterHookExtension
122
- block.extend(RSpec::Core::Hooks::AfterHookExtension).with(options)
123
- else
124
- RSpec::Core::Hooks::AfterHook.new(block, options)
125
- end
126
- end
127
-
128
- def _metadata_from_args(args)
129
- if RSpec::Core::Metadata.respond_to?(:build_hash_from)
130
- RSpec::Core::Metadata.build_hash_from(args)
131
- else
132
- build_metadata_hash_from(args)
133
- end
134
- end
135
-
136
- def warn_about_promotion(scope_name)
137
- RSpecStepwise.warnings[
138
- "#{scope_name} :each blocks declared for steps are always treated as " +
139
- ":all scope (it's possible you want #{scope_name} :step)"]
140
- end
141
-
142
- def before(*args, &block)
143
- if args.first == :step
144
- args.shift
145
- options = _metadata_from_args(args)
146
- return ((hooks[:before][:step] ||= []) << build_before_hook(options, &block))
147
- end
148
- if args.first == :each
149
- warn_about_promotion("before")
150
- end
151
- super
152
- end
153
-
154
- def after(*args, &block)
155
- if args.first == :step
156
- args.shift
157
- options = _metadata_from_args(args)
158
- hooks[:after][:step] ||= []
159
- return (hooks[:after][:step].unshift build_after_hook(options, &block))
160
- end
161
- if args.first == :each
162
- warn_about_promotion("after")
163
- end
164
- super
165
- end
166
-
167
- def around(*args, &block)
168
- if args.first == :each
169
- warn_about_promotion("around")
170
- end
171
- super
172
- end
173
-
174
- def example_synonym(named, desc=nil, *args, &block)
175
- unless desc.nil?
176
- desc = [named, desc].join(" ")
177
- end
178
- it(desc, *args, &block)
179
- end
180
-
181
- def when(*args, &block); example_synonym("when", *args, &block); end
182
- def then(*args, &block); example_synonym("then", *args, &block); end
183
- def next(*args, &block); example_synonym("next", *args, &block); end
184
- def step(*args, &block); example_synonym("step", *args, &block); end
185
-
186
- def run_step(example, hook, &sorting)
187
- groups = if respond_to?(:parent_groups)
188
- parent_groups
189
- else
190
- ancestors
191
- end
192
-
193
- if block_given?
194
- groups = yield groups
195
- end
196
-
197
- RSpec::Core::Hooks::HookCollection.new(groups.map {|a| a.hooks[hook][:step]}.flatten.compact).for(example).run
198
- end
199
-
200
- def run_before_step(example)
201
- run_step(example, :before)
202
- end
203
-
204
- def run_after_step(example)
205
- run_step(example, :after) do |groups|
206
- groups.reverse
207
- end
208
- end
209
-
210
- def perform_steps(name, *args, &customization_block)
211
- shared_block = nil
212
- if respond_to?(:world) and world.respond_to? :shared_example_groups
213
- shared_block = world.shared_example_groups[name]
214
- else
215
- if respond_to?(:shared_example_groups)
216
- shared_block = shared_example_groups[name]
217
- else
218
- shared_block = RSpec.world.shared_example_group_registry.find(parent_groups, name)
219
- end
220
- end
221
- raise "Could not find shared example group named #{name.inspect}" unless shared_block
222
-
223
- if respond_to? :module_exec
224
- module_exec(*args, &shared_block)
225
- module_exec(&customization_block) if customization_block
226
- else
227
- module_eval_with_args(*args, &shared_block)
228
- module_eval(&customization_block) if customization_block
229
- end
230
- end
231
-
232
- def run_examples(reporter)
233
- whole_list_example = WholeListExample.new(self, reporter, "step list", {})
234
-
235
- instance = new
236
- if respond_to? :before_context_ivars
237
- set_ivars(instance, before_context_ivars)
238
- else
239
- set_ivars(instance, before_all_ivars)
240
- end
241
- instance.example = whole_list_example if respond_to? :example=
242
- instance.reporter = reporter if respond_to? :reporter=
243
-
244
- result = suspend_transactional_fixtures do
245
- whole_list_example.run(instance, reporter)
246
- end
247
-
248
- result
249
- end
250
- end
251
-
252
- attr_accessor :reporter
253
-
254
- def with_indelible_ivars
255
- old_value, @ivars_indelible = @ivars_indelible, true
256
- result = yield
257
- @ivars_indelible = old_value
258
- result
259
- rescue Object
260
- @ivars_indelible = old_value
261
- raise
262
- end
263
-
264
- def instance_variable_set(name, value)
265
- if !@ivars_indelible
266
- super
267
- end
268
- end
269
-
270
- def self.included(base)
271
- base.extend(ClassMethods)
272
- end
273
- end