turnip 0.3.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/README.md +128 -166
  2. data/examples/autoload_steps.feature +3 -2
  3. data/examples/errors.feature +8 -0
  4. data/examples/step_calling.feature +2 -0
  5. data/examples/steps/alignment_steps.rb +23 -0
  6. data/examples/{autoload_steps.rb → steps/autoload_steps.rb} +0 -0
  7. data/examples/steps/backtick_steps.rb +10 -0
  8. data/examples/steps/dragon_steps.rb +41 -0
  9. data/examples/{knight_steps.rb → steps/knight_steps.rb} +3 -1
  10. data/examples/{more_steps.rb → steps/more_steps.rb} +0 -0
  11. data/examples/{step_calling_steps.rb → steps/step_calling_steps.rb} +0 -0
  12. data/examples/{steps.rb → steps/steps.rb} +25 -1
  13. data/examples/steps_for.feature +2 -2
  14. data/examples/steps_with_variations.feature +17 -0
  15. data/lib/turnip.rb +19 -34
  16. data/lib/turnip/builder.rb +26 -24
  17. data/lib/turnip/define.rb +9 -0
  18. data/lib/turnip/dsl.rb +11 -17
  19. data/lib/turnip/execute.rb +15 -0
  20. data/lib/turnip/rspec.rb +80 -0
  21. data/lib/turnip/step_definition.rb +7 -32
  22. data/lib/turnip/version.rb +1 -1
  23. data/spec/builder_spec.rb +1 -40
  24. data/spec/define_and_execute.rb +38 -0
  25. data/spec/dsl_spec.rb +36 -19
  26. data/spec/integration_spec.rb +5 -1
  27. data/spec/spec_helper.rb +1 -3
  28. data/spec/step_definition_spec.rb +37 -51
  29. metadata +25 -55
  30. data/examples/alignment_steps.rb +0 -7
  31. data/examples/backtick_steps.rb +0 -4
  32. data/examples/dragon_steps.rb +0 -17
  33. data/examples/evil_steps.rb +0 -7
  34. data/examples/neutral_steps.rb +0 -7
  35. data/examples/red_dragon_steps.rb +0 -18
  36. data/lib/turnip/config.rb +0 -18
  37. data/lib/turnip/feature_file.rb +0 -20
  38. data/lib/turnip/loader.rb +0 -16
  39. data/lib/turnip/runner_dsl.rb +0 -9
  40. data/lib/turnip/scenario_context.rb +0 -41
  41. data/lib/turnip/scenario_runner.rb +0 -35
  42. data/lib/turnip/step_loader.rb +0 -27
  43. data/lib/turnip/step_module.rb +0 -89
  44. data/spec/feature_file_spec.rb +0 -18
  45. data/spec/runner_dsl_spec.rb +0 -23
  46. data/spec/scenario_context_spec.rb +0 -51
  47. data/spec/scenario_runner_spec.rb +0 -79
  48. data/spec/step_loader_spec.rb +0 -29
  49. data/spec/step_module_spec.rb +0 -106
@@ -4,31 +4,8 @@ module Turnip
4
4
  def expression; step_definition.expression; end
5
5
  end
6
6
 
7
- class Pending < StandardError; end
8
- class Ambiguous < StandardError; end
9
-
10
7
  attr_reader :expression, :block
11
8
 
12
- class << self
13
- def execute(context, available_steps, step)
14
- match = find(available_steps, step.description)
15
- params = match.params
16
- params << step.extra_arg if step.extra_arg
17
- context.instance_exec(*params, &match.block)
18
- rescue Pending
19
- context.pending "the step '#{step.description}' is not implemented"
20
- end
21
-
22
- def find(available_steps, description)
23
- found = available_steps.map do |step|
24
- step.match(description)
25
- end.compact
26
- raise Pending, description if found.length == 0
27
- raise Ambiguous, description if found.length > 1
28
- found[0]
29
- end
30
- end
31
-
32
9
  def initialize(expression, &block)
33
10
  @expression = expression
34
11
  @block = block
@@ -42,7 +19,7 @@ module Turnip
42
19
  result = description.match(regexp)
43
20
  if result
44
21
  params = result.captures
45
- result.names.each_with_index do |name, index|
22
+ @placeholder_names.each_with_index do |name, index|
46
23
  params[index] = Turnip::Placeholder.apply(name.to_sym, params[index])
47
24
  end
48
25
  Match.new(self, params, block)
@@ -54,21 +31,19 @@ module Turnip
54
31
  OPTIONAL_WORD_REGEXP = /(\\\s)?\\\(([^)]+)\\\)(\\\s)?/
55
32
  PLACEHOLDER_REGEXP = /:([\w]+)/
56
33
  ALTERNATIVE_WORD_REGEXP = /(\w+)((\/\w+)+)/
57
- COMMAND_REGEXP = /`([^`]+)`/
58
34
 
59
35
  def compile_regexp
36
+ @placeholder_names = []
60
37
  regexp = Regexp.escape(expression)
61
- regexp.gsub!(COMMAND_REGEXP) do |_|
62
- "(?:[`]([^`]+)[`])"
38
+ regexp.gsub!(PLACEHOLDER_REGEXP) do |_|
39
+ @placeholder_names << "#{$1}"
40
+ "(?<#{$1}>#{Placeholder.resolve($1.to_sym)})"
63
41
  end
64
42
  regexp.gsub!(OPTIONAL_WORD_REGEXP) do |_|
65
- [$1, $2, $3].compact.map { |m| "(#{m})?" }.join
43
+ [$1, $2, $3].compact.map { |m| "(?:#{m})?" }.join
66
44
  end
67
45
  regexp.gsub!(ALTERNATIVE_WORD_REGEXP) do |_|
68
- "(#{$1}#{$2.tr('/', '|')})"
69
- end
70
- regexp.gsub!(PLACEHOLDER_REGEXP) do |_|
71
- "(?<#{$1}>#{Placeholder.resolve($1.to_sym)})"
46
+ "(?:#{$1}#{$2.tr('/', '|')})"
72
47
  end
73
48
  Regexp.new("^#{regexp}$")
74
49
  end
@@ -1,3 +1,3 @@
1
1
  module Turnip
2
- VERSION = "0.3.1"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe Turnip::Builder do
4
4
  context "with scenario outlines" do
5
- let(:feature_file) { Turnip::FeatureFile.new(File.expand_path('../examples/scenario_outline.feature', File.dirname(__FILE__))) }
5
+ let(:feature_file) { File.expand_path('../examples/scenario_outline.feature', File.dirname(__FILE__)) }
6
6
  let(:builder) { Turnip::Builder.build(feature_file) }
7
7
  let(:feature) { builder.features.first }
8
8
 
@@ -27,43 +27,4 @@ describe Turnip::Builder do
27
27
  ])
28
28
  end
29
29
  end
30
-
31
- describe "taggings" do
32
- let(:feature_file) { Turnip::FeatureFile.new(File.expand_path('../examples/autoload_steps.feature', File.dirname(__FILE__))) }
33
- let(:builder) { Turnip::Builder.build(feature_file) }
34
- let(:feature) { builder.features.first }
35
-
36
- context "for features" do
37
- it 'should automatically include the :global tag for features' do
38
- feature.active_tags.should include(:global)
39
- end
40
-
41
- it 'should automatically include the feature name tag for features' do
42
- feature.active_tags.should include(:autoload_steps)
43
- end
44
- end
45
-
46
- context "for scenarios" do
47
- it 'should only include scenario tags' do
48
- feature.scenarios.first.active_tags.should eq([:scenario_tag])
49
- end
50
- end
51
-
52
- context "autotag features disabled" do
53
- before(:each) { Turnip::Config.autotag_features = false }
54
- after(:each) { Turnip::Config.autotag_features = true }
55
-
56
- let(:feature_file) { Turnip::FeatureFile.new(File.expand_path('../examples/autoload_steps.feature', File.dirname(__FILE__))) }
57
- let(:builder) { Turnip::Builder.build(feature_file) }
58
- let(:feature) { builder.features.first }
59
-
60
- it 'should automatically include the :global tag for features' do
61
- feature.active_tags.should include(:global)
62
- end
63
-
64
- it 'should not automatically include the feature name tag for features' do
65
- feature.active_tags.should_not include(:autoload_steps)
66
- end
67
- end
68
- end
69
30
  end
@@ -0,0 +1,38 @@
1
+ require "spec_helper"
2
+
3
+ describe Turnip::Execute do
4
+ let(:mod) { Module.new }
5
+ let(:obj) { Object.new.tap { |o| o.extend Turnip::Execute; o.extend mod } }
6
+
7
+ it "defines a step method and makes it callable" do
8
+ mod.step("a test step") { "monkey" }
9
+ obj.step("a test step").should == "monkey"
10
+ end
11
+
12
+ it "allows placeholders to be filled and passed as arguments" do
13
+ mod.step("a :test step") { |test| test.upcase }
14
+ obj.step("a cool step").should == "COOL"
15
+ end
16
+
17
+ it "allows step to be called as a method via `send`" do
18
+ mod.step("a :test step") { |test| test.upcase }
19
+ obj.send("a :test step", "cool").should == "COOL"
20
+ end
21
+
22
+ it "sends in extra arg from a builder step" do
23
+ mod.step("a :test step") { |test, foo| test.upcase + foo }
24
+ obj.step("a cool step", "foo").should == "COOLfoo"
25
+ end
26
+
27
+ it "can be executed with a builder step" do
28
+ builder_step = stub(:to_s => "a cool step", :extra_args => [])
29
+ mod.step("a :test step") { |test| test.upcase }
30
+ obj.step(builder_step).should == "COOL"
31
+ end
32
+
33
+ it "sends in extra arg from a builder step" do
34
+ builder_step = stub(:to_s => "a cool step", :extra_args => ["foo"])
35
+ mod.step("a :test step") { |test, foo| test.upcase + foo }
36
+ obj.step(builder_step).should == "COOLfoo"
37
+ end
38
+ end
@@ -1,33 +1,50 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Turnip::DSL do
4
- before do
5
- Turnip::StepModule.clear_module_registry
6
- end
7
-
8
4
  let(:context) { stub.tap { |s| s.extend(Turnip::DSL) }}
9
-
5
+ let(:an_object) { Object.new.tap { |o| o.extend(Turnip::Execute) }}
10
6
  describe '.steps_for' do
11
- it 'delegates to StepModule' do
12
- Turnip::StepModule.should_receive(:steps_for).with(:example)
13
- context.steps_for(:example) {}
7
+ before do
8
+ ::RSpec.stub(:configure)
14
9
  end
15
- end
16
10
 
17
- describe '.step' do
18
- context 'first step defined globally' do
19
- it 'creates a new global entry' do
20
- context.step('this is a test') {}
21
- Turnip::StepModule.should be_registered(:global)
11
+ it 'creates a new module and adds steps to it' do
12
+ mod = context.steps_for(:foo) do
13
+ step("foo") { "foo" }
22
14
  end
15
+ an_object.extend mod
16
+ an_object.step("foo").should == "foo"
17
+ end
18
+
19
+ it 'remembers the name of the module' do
20
+ mod = context.steps_for(:foo) {}
21
+ mod.tag.should == :foo
23
22
  end
24
23
 
25
- context 'all other steps defined globally' do
26
- it 'adds more steps to the :global step module' do
27
- context.step('this is a test') {}
28
- context.step('this is another test') {}
29
- Turnip::StepModule.module_registry[:global].first.step_module.steps.size.should eq(2)
24
+ it 'tells RSpec to include the module' do
25
+ config = stub
26
+ RSpec.should_receive(:configure).and_yield(config)
27
+ config.should_receive(:include)
28
+
29
+ context.steps_for(:foo) {}
30
+ end
31
+
32
+ it 'warns of deprecation when called with :global' do
33
+ context.should_receive(:warn)
34
+ mod = context.steps_for(:global) do
35
+ step("foo") { "foo" }
30
36
  end
37
+ an_object.extend Turnip::Steps
38
+ an_object.step("foo").should == "foo"
39
+ end
40
+ end
41
+
42
+ describe '.step' do
43
+ it 'adds steps to Turnip::Steps' do
44
+ context.step('this is a test') { "foo" }
45
+ context.step('this is another test') { "bar" }
46
+ an_object.extend Turnip::Steps
47
+ an_object.step("this is a test").should == "foo"
31
48
  end
32
49
  end
33
50
 
@@ -11,6 +11,10 @@ describe 'The CLI', :type => :integration do
11
11
  end
12
12
 
13
13
  it "prints out failures and successes" do
14
- @result.should include('26 examples, 1 failure, 2 pending')
14
+ @result.should include('33 examples, 3 failures, 3 pending')
15
+ end
16
+
17
+ it "includes features in backtraces" do
18
+ @result.should include('examples/errors.feature:5:in `raise error')
15
19
  end
16
20
  end
@@ -1,3 +1 @@
1
- RSpec.configure do |config|
2
- Turnip::Config.step_dirs = 'examples'
3
- end
1
+ Dir.glob("examples/**/*steps.rb") { |f| load f, true }
@@ -1,50 +1,6 @@
1
1
  describe Turnip::StepDefinition do
2
2
  let(:all_steps) { [] }
3
3
 
4
- describe ".find" do
5
- it "returns a step definition that matches the description" do
6
- all_steps << Turnip::StepDefinition.new("there are :count monsters")
7
- Turnip::StepDefinition.find(all_steps, "there are 23 monsters").expression.should eq("there are :count monsters")
8
- end
9
-
10
- it "raises an error if the match is ambiguous" do
11
- all_steps << Turnip::StepDefinition.new("there are :count monsters")
12
- all_steps << Turnip::StepDefinition.new("there are 23 monsters")
13
- expect { Turnip::StepDefinition.find(all_steps, "there are 23 monsters") }.to raise_error(Turnip::StepDefinition::Ambiguous)
14
- end
15
-
16
- it "raises an error if there is no match" do
17
- expect { Turnip::StepDefinition.find(all_steps, "there are 23 monsters") }.to raise_error(Turnip::StepDefinition::Pending)
18
- end
19
- end
20
-
21
- describe ".execute" do
22
- let(:context) { stub }
23
-
24
- it "executes a step in the given context" do
25
- all_steps << Turnip::StepDefinition.new("there are :count monsters") { @testing = 123 }
26
- Turnip::StepDefinition.execute(context, all_steps, stub(:description => "there are 23 monsters", :extra_arg => nil))
27
- context.instance_variable_get(:@testing).should == 123
28
- end
29
-
30
- it "tells the context that the step is pending" do
31
- context.should_receive(:pending).with("the step 'there are 23 monsters' is not implemented")
32
- Turnip::StepDefinition.execute(context, all_steps, stub(:description => "there are 23 monsters", :extra_arg => nil))
33
- end
34
-
35
- it "sends along arguments" do
36
- all_steps << Turnip::StepDefinition.new("there are :count monsters") { |count| @testing = count.to_i }
37
- Turnip::StepDefinition.execute(context, all_steps, stub(:description => "there are 23 monsters", :extra_arg => nil))
38
- context.instance_variable_get(:@testing).should == 23
39
- end
40
-
41
- it "sends along extra arguments" do
42
- all_steps << Turnip::StepDefinition.new("there are :count monsters") { |count, extra| @testing = extra }
43
- Turnip::StepDefinition.execute(context, all_steps, stub(:description => "there are 23 monsters", :extra_arg => 'foo'))
44
- context.instance_variable_get(:@testing).should == 'foo'
45
- end
46
- end
47
-
48
4
  describe "#match" do
49
5
  it "matches a simple step" do
50
6
  step = Turnip::StepDefinition.new("there are monsters") {}
@@ -60,19 +16,49 @@ describe Turnip::StepDefinition do
60
16
  step.should match("there are 324 monsters")
61
17
  step.should_not match("there are no monsters")
62
18
  end
63
-
19
+
20
+ it "extracts arguments from matched steps" do
21
+ step = Turnip::StepDefinition.new("a :age year old monster called :name") {}
22
+ match = step.match("a 3 year old monster called John")
23
+ match.params.should eq(["3", "John"])
24
+ end
25
+
26
+ it "can reuse the same placeholder multiple times" do
27
+ step = Turnip::StepDefinition.new("a the monsters :name and :name") {}
28
+ match = step.match("a the monsters John and Trudy")
29
+ match.params.should eq(["John", "Trudy"])
30
+ end
31
+
32
+ it "can reuse the same custom placeholder multiple times" do
33
+ Turnip::Placeholder.stub(:resolve).with(:count).and_return(/\d+/)
34
+ step = Turnip::StepDefinition.new(":count monsters and :count knights") {}
35
+ match = step.match("3 monsters and 2 knights")
36
+ match.params.should eq(["3", "2"])
37
+ end
38
+
39
+ it "does search for the same custom placeholder several times" do
40
+ placeholder = Turnip::Placeholder.add(:count) { match(/\d/) { |count| count.to_i } }
41
+ Turnip::Placeholder.stub(:resolve).with(:count).and_return(/\d+/)
42
+ Turnip::Placeholder.should_receive(:find).with(:count).twice.and_return(placeholder)
43
+ step = Turnip::StepDefinition.new(":count monsters and :count knights") {}
44
+ match = step.match("3 monsters and 2 knights")
45
+ #match.params.should eq([3, 2])
46
+ end
47
+
48
+ it "does apply the same custom placeholder several times" do
49
+ placeholder = Turnip::Placeholder.add(:count) { match(/\d/) { |count| count.to_i } }
50
+ Turnip::Placeholder.stub(:resolve).with(:count).and_return(/\d+/)
51
+ placeholder.should_receive(:apply).twice
52
+ step = Turnip::StepDefinition.new(":count monsters and :count knights") {}
53
+ match = step.match("3 monsters and 2 knights")
54
+ end
55
+
64
56
  it "matches quoted placeholders" do
65
57
  step = Turnip::StepDefinition.new("there is a monster named :name") {}
66
58
  step.should match("there is a monster named 'Scary'")
67
59
  step.should match('there is a monster named "Hairy"')
68
60
  end
69
61
 
70
- it "matches backticked placeholders" do
71
- step = Turnip::StepDefinition.new("I run `:cmd`") {}
72
- step.should match("I run `echo foo`")
73
- step.should match(%q{I run `echo "foo 'bar' baz"`})
74
- end
75
-
76
62
  it "matches alternative words" do
77
63
  step = Turnip::StepDefinition.new("there is/are monsters") {}
78
64
  step.should match("there are monsters")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turnip
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-17 00:00:00.000000000 Z
12
+ date: 2012-06-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &2153019360 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,15 +21,10 @@ dependencies:
21
21
  version: '2.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- version: '2.0'
24
+ version_requirements: *2153019360
30
25
  - !ruby/object:Gem::Dependency
31
26
  name: gherkin
32
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &2153018640 !ruby/object:Gem::Requirement
33
28
  none: false
34
29
  requirements:
35
30
  - - ! '>='
@@ -37,15 +32,10 @@ dependencies:
37
32
  version: '2.5'
38
33
  type: :runtime
39
34
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '2.5'
35
+ version_requirements: *2153018640
46
36
  - !ruby/object:Gem::Dependency
47
37
  name: rake
48
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &2153018120 !ruby/object:Gem::Requirement
49
39
  none: false
50
40
  requirements:
51
41
  - - ! '>='
@@ -53,12 +43,7 @@ dependencies:
53
43
  version: '0'
54
44
  type: :development
55
45
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
46
+ version_requirements: *2153018120
62
47
  description: Provides the ability to define steps and run Gherkin files from with
63
48
  RSpec
64
49
  email:
@@ -73,28 +58,27 @@ files:
73
58
  - Gemfile
74
59
  - README.md
75
60
  - Rakefile
76
- - examples/alignment_steps.rb
77
61
  - examples/ambiguous.feature
78
62
  - examples/autoload_steps.feature
79
- - examples/autoload_steps.rb
80
63
  - examples/backgrounds.feature
81
- - examples/backtick_steps.rb
82
- - examples/dragon_steps.rb
83
- - examples/evil_steps.rb
64
+ - examples/errors.feature
84
65
  - examples/interpolation.feature
85
- - examples/knight_steps.rb
86
- - examples/more_steps.rb
87
66
  - examples/multiline_string.feature
88
- - examples/neutral_steps.rb
89
67
  - examples/pending.feature
90
- - examples/red_dragon_steps.rb
91
68
  - examples/scenario_outline.feature
92
69
  - examples/simple_feature.feature
93
70
  - examples/step_calling.feature
94
- - examples/step_calling_steps.rb
95
- - examples/steps.rb
71
+ - examples/steps/alignment_steps.rb
72
+ - examples/steps/autoload_steps.rb
73
+ - examples/steps/backtick_steps.rb
74
+ - examples/steps/dragon_steps.rb
75
+ - examples/steps/knight_steps.rb
76
+ - examples/steps/more_steps.rb
77
+ - examples/steps/step_calling_steps.rb
78
+ - examples/steps/steps.rb
96
79
  - examples/steps_for.feature
97
80
  - examples/steps_for_super.feature
81
+ - examples/steps_with_variations.feature
98
82
  - examples/table.feature
99
83
  - examples/tags.feature
100
84
  - examples/with_backticks.feature
@@ -102,31 +86,21 @@ files:
102
86
  - lib/turnip.rb
103
87
  - lib/turnip/builder.rb
104
88
  - lib/turnip/capybara.rb
105
- - lib/turnip/config.rb
89
+ - lib/turnip/define.rb
106
90
  - lib/turnip/dsl.rb
107
- - lib/turnip/feature_file.rb
108
- - lib/turnip/loader.rb
91
+ - lib/turnip/execute.rb
109
92
  - lib/turnip/placeholder.rb
110
- - lib/turnip/runner_dsl.rb
111
- - lib/turnip/scenario_context.rb
112
- - lib/turnip/scenario_runner.rb
93
+ - lib/turnip/rspec.rb
113
94
  - lib/turnip/step_definition.rb
114
- - lib/turnip/step_loader.rb
115
- - lib/turnip/step_module.rb
116
95
  - lib/turnip/table.rb
117
96
  - lib/turnip/version.rb
118
97
  - spec/builder_spec.rb
98
+ - spec/define_and_execute.rb
119
99
  - spec/dsl_spec.rb
120
- - spec/feature_file_spec.rb
121
100
  - spec/integration_spec.rb
122
101
  - spec/placeholder_spec.rb
123
- - spec/runner_dsl_spec.rb
124
- - spec/scenario_context_spec.rb
125
- - spec/scenario_runner_spec.rb
126
102
  - spec/spec_helper.rb
127
103
  - spec/step_definition_spec.rb
128
- - spec/step_loader_spec.rb
129
- - spec/step_module_spec.rb
130
104
  - spec/table_spec.rb
131
105
  - turnip.gemspec
132
106
  homepage: ''
@@ -149,21 +123,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
123
  version: '0'
150
124
  requirements: []
151
125
  rubyforge_project: turnip
152
- rubygems_version: 1.8.22
126
+ rubygems_version: 1.8.16
153
127
  signing_key:
154
128
  specification_version: 3
155
129
  summary: Gherkin extension for RSpec
156
130
  test_files:
157
131
  - spec/builder_spec.rb
132
+ - spec/define_and_execute.rb
158
133
  - spec/dsl_spec.rb
159
- - spec/feature_file_spec.rb
160
134
  - spec/integration_spec.rb
161
135
  - spec/placeholder_spec.rb
162
- - spec/runner_dsl_spec.rb
163
- - spec/scenario_context_spec.rb
164
- - spec/scenario_runner_spec.rb
165
136
  - spec/spec_helper.rb
166
137
  - spec/step_definition_spec.rb
167
- - spec/step_loader_spec.rb
168
- - spec/step_module_spec.rb
169
138
  - spec/table_spec.rb
139
+ has_rdoc: