turnip 0.3.1 → 1.0.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.
- data/README.md +128 -166
- data/examples/autoload_steps.feature +3 -2
- data/examples/errors.feature +8 -0
- data/examples/step_calling.feature +2 -0
- data/examples/steps/alignment_steps.rb +23 -0
- data/examples/{autoload_steps.rb → steps/autoload_steps.rb} +0 -0
- data/examples/steps/backtick_steps.rb +10 -0
- data/examples/steps/dragon_steps.rb +41 -0
- data/examples/{knight_steps.rb → steps/knight_steps.rb} +3 -1
- data/examples/{more_steps.rb → steps/more_steps.rb} +0 -0
- data/examples/{step_calling_steps.rb → steps/step_calling_steps.rb} +0 -0
- data/examples/{steps.rb → steps/steps.rb} +25 -1
- data/examples/steps_for.feature +2 -2
- data/examples/steps_with_variations.feature +17 -0
- data/lib/turnip.rb +19 -34
- data/lib/turnip/builder.rb +26 -24
- data/lib/turnip/define.rb +9 -0
- data/lib/turnip/dsl.rb +11 -17
- data/lib/turnip/execute.rb +15 -0
- data/lib/turnip/rspec.rb +80 -0
- data/lib/turnip/step_definition.rb +7 -32
- data/lib/turnip/version.rb +1 -1
- data/spec/builder_spec.rb +1 -40
- data/spec/define_and_execute.rb +38 -0
- data/spec/dsl_spec.rb +36 -19
- data/spec/integration_spec.rb +5 -1
- data/spec/spec_helper.rb +1 -3
- data/spec/step_definition_spec.rb +37 -51
- metadata +25 -55
- data/examples/alignment_steps.rb +0 -7
- data/examples/backtick_steps.rb +0 -4
- data/examples/dragon_steps.rb +0 -17
- data/examples/evil_steps.rb +0 -7
- data/examples/neutral_steps.rb +0 -7
- data/examples/red_dragon_steps.rb +0 -18
- data/lib/turnip/config.rb +0 -18
- data/lib/turnip/feature_file.rb +0 -20
- data/lib/turnip/loader.rb +0 -16
- data/lib/turnip/runner_dsl.rb +0 -9
- data/lib/turnip/scenario_context.rb +0 -41
- data/lib/turnip/scenario_runner.rb +0 -35
- data/lib/turnip/step_loader.rb +0 -27
- data/lib/turnip/step_module.rb +0 -89
- data/spec/feature_file_spec.rb +0 -18
- data/spec/runner_dsl_spec.rb +0 -23
- data/spec/scenario_context_spec.rb +0 -51
- data/spec/scenario_runner_spec.rb +0 -79
- data/spec/step_loader_spec.rb +0 -29
- 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
|
-
|
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!(
|
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| "(
|
43
|
+
[$1, $2, $3].compact.map { |m| "(?:#{m})?" }.join
|
66
44
|
end
|
67
45
|
regexp.gsub!(ALTERNATIVE_WORD_REGEXP) do |_|
|
68
|
-
"(
|
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
|
data/lib/turnip/version.rb
CHANGED
data/spec/builder_spec.rb
CHANGED
@@ -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) {
|
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
|
data/spec/dsl_spec.rb
CHANGED
@@ -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
|
-
|
12
|
-
|
13
|
-
context.steps_for(:example) {}
|
7
|
+
before do
|
8
|
+
::RSpec.stub(:configure)
|
14
9
|
end
|
15
|
-
end
|
16
10
|
|
17
|
-
|
18
|
-
|
19
|
-
|
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
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|
|
data/spec/integration_spec.rb
CHANGED
@@ -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('
|
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
|
data/spec/spec_helper.rb
CHANGED
@@ -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.
|
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-
|
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:
|
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:
|
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:
|
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/
|
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/
|
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/
|
89
|
+
- lib/turnip/define.rb
|
106
90
|
- lib/turnip/dsl.rb
|
107
|
-
- lib/turnip/
|
108
|
-
- lib/turnip/loader.rb
|
91
|
+
- lib/turnip/execute.rb
|
109
92
|
- lib/turnip/placeholder.rb
|
110
|
-
- lib/turnip/
|
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.
|
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:
|