turnip 4.3.0 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +4 -4
- data/.tool-versions +1 -0
- data/CHANGELOG.md +12 -0
- data/README.md +19 -1
- data/examples/specific_language.feature +5 -0
- data/gemfiles/{Gemfile-rspec-3.10.x → Gemfile-rspec-3.11.x} +1 -1
- data/gemfiles/{Gemfile-rspec-3.9.x → Gemfile-rspec-3.12.x} +1 -1
- data/lib/turnip/builder.rb +4 -10
- data/lib/turnip/node/example.rb +6 -6
- data/lib/turnip/node/feature.rb +12 -9
- data/lib/turnip/node/location.rb +1 -1
- data/lib/turnip/node/rule.rb +9 -6
- data/lib/turnip/node/scenario_definition.rb +4 -4
- data/lib/turnip/node/scenario_group_definition.rb +3 -3
- data/lib/turnip/node/scenario_outline.rb +19 -16
- data/lib/turnip/node/step.rb +11 -10
- data/lib/turnip/node/tag.rb +2 -2
- data/lib/turnip/rspec.rb +16 -5
- data/lib/turnip/version.rb +1 -1
- data/spec/integration_spec.rb +2 -1
- data/spec/nodes/feature_spec.rb +14 -0
- data/spec/reporter_spec.rb +52 -0
- data/turnip.gemspec +1 -1
- metadata +17 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32d3aecd977c3e3d73df64781c8c929c6375ca79e86e94ba3339f18541db5450
|
4
|
+
data.tar.gz: 89d504ed60b272b9d31f90756c6f4f0e7fd28a136ab7444a7b11fbc88298d452
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c7473753934fb4d5deaa5b3c3856be1206aceea11bbdd8c1692e11cef24f340d96c95c78065b887772402fbe724c75581ee9788717193fa577e1c9044530b86e
|
7
|
+
data.tar.gz: ad6e2fc48ab21319383eaa81fb51fdb943bd716f4350912c3336b8a574d386d75f27f684ad96005d114623f69aefd5cfc902630973fe1f8d1f377aed44476774
|
data/.github/workflows/test.yml
CHANGED
@@ -6,13 +6,13 @@ jobs:
|
|
6
6
|
fail-fast: false
|
7
7
|
matrix:
|
8
8
|
ruby:
|
9
|
-
- '2.5'
|
10
|
-
- '2.6'
|
11
9
|
- '2.7'
|
10
|
+
- '3.0'
|
11
|
+
- '3.1'
|
12
12
|
- jruby
|
13
13
|
gemfiles:
|
14
|
-
- gemfiles/Gemfile-rspec-3.
|
15
|
-
- gemfiles/Gemfile-rspec-3.
|
14
|
+
- gemfiles/Gemfile-rspec-3.11.x
|
15
|
+
- gemfiles/Gemfile-rspec-3.12.x
|
16
16
|
runs-on: ubuntu-latest
|
17
17
|
steps:
|
18
18
|
- uses: actions/checkout@v2
|
data/.tool-versions
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby 2.7.2
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,18 @@
|
|
2
2
|
|
3
3
|
## [Unreleased]
|
4
4
|
|
5
|
+
## [4.4.0] - 2022-11-04
|
6
|
+
|
7
|
+
### Added
|
8
|
+
|
9
|
+
- Add CukeModeler as Gherkin abstraction layer [[GH-244](https://github.com/jnicklas/turnip/pull/244)]
|
10
|
+
- Send step notifications and add metadata for RSpec reporter [[GH-249](https://github.com/jnicklas/turnip/pull/249)]
|
11
|
+
|
12
|
+
### Fixed
|
13
|
+
|
14
|
+
- Add "missing step" context when raising error for unimplemented steps [[GH-240](https://github.com/jnicklas/turnip/pull/240)]
|
15
|
+
- Support rspec 3.11 and 3.12 and deprecate EOL rubies [[GH-250](https://github.com/jnicklas/turnip/pull/250)]
|
16
|
+
|
5
17
|
## [4.3.0] - 2021-05-16
|
6
18
|
|
7
19
|
### Added
|
data/README.md
CHANGED
@@ -440,7 +440,7 @@ end
|
|
440
440
|
Turnip mark a scenario as pending when steps in the scenario is not implemented.
|
441
441
|
If you sets `raise_error_for_unimplemented_steps` as `true`, turnip will mark a scenario as fail.
|
442
442
|
|
443
|
-
It defaults to `false`, you can change it by following configuration
|
443
|
+
It defaults to `false`, you can change it by adding following configuration to `spec/turnip_helper.rb`:
|
444
444
|
|
445
445
|
```ruby
|
446
446
|
RSpec.configure do |config|
|
@@ -476,6 +476,24 @@ tags you'd use in Cucumber to switch between drivers e.g. `@javascript` or
|
|
476
476
|
metadata, so that Capybara is included and also any other extensions you might
|
477
477
|
want to add.
|
478
478
|
|
479
|
+
## RSpec custom formatters
|
480
|
+
|
481
|
+
Turnip sends notifications to the RSpec reporter about step progress. You can
|
482
|
+
listen for these by registering your formatter class with the following
|
483
|
+
notifications:
|
484
|
+
|
485
|
+
``` ruby
|
486
|
+
class MyFormatter
|
487
|
+
RSpec::Core::Formatters.register self, :step_started, :step_passed, :step_failed, :step_pending
|
488
|
+
|
489
|
+
def step_passed(step)
|
490
|
+
puts "Starting step: #{step.text}"
|
491
|
+
end
|
492
|
+
|
493
|
+
# …
|
494
|
+
end
|
495
|
+
```
|
496
|
+
|
479
497
|
## License
|
480
498
|
|
481
499
|
(The MIT License)
|
data/lib/turnip/builder.rb
CHANGED
@@ -1,19 +1,13 @@
|
|
1
|
-
require "
|
1
|
+
require "cuke_modeler"
|
2
2
|
require 'turnip/node/feature'
|
3
3
|
|
4
4
|
module Turnip
|
5
5
|
class Builder
|
6
6
|
def self.build(feature_file)
|
7
|
-
|
8
|
-
[feature_file],
|
9
|
-
include_source: false,
|
10
|
-
include_gherkin_document: true,
|
11
|
-
include_pickles: false
|
12
|
-
)
|
13
|
-
result = messages.first&.gherkin_document&.to_hash
|
7
|
+
feature_file = CukeModeler::FeatureFile.new(feature_file)
|
14
8
|
|
15
|
-
return nil
|
16
|
-
Node::Feature.new(
|
9
|
+
return nil unless feature_file.feature
|
10
|
+
Node::Feature.new(feature_file.feature)
|
17
11
|
end
|
18
12
|
end
|
19
13
|
end
|
data/lib/turnip/node/example.rb
CHANGED
@@ -20,15 +20,15 @@ module Turnip
|
|
20
20
|
include HasTags
|
21
21
|
|
22
22
|
def keyword
|
23
|
-
@raw
|
23
|
+
@raw.keyword
|
24
24
|
end
|
25
25
|
|
26
26
|
def name
|
27
|
-
@raw
|
27
|
+
@raw.name
|
28
28
|
end
|
29
29
|
|
30
30
|
def description
|
31
|
-
@raw
|
31
|
+
@raw.description
|
32
32
|
end
|
33
33
|
|
34
34
|
#
|
@@ -42,7 +42,7 @@ module Turnip
|
|
42
42
|
# @return [Array]
|
43
43
|
#
|
44
44
|
def header
|
45
|
-
@header ||= @raw
|
45
|
+
@header ||= @raw.parameter_row.cells.map { |c| c.value }
|
46
46
|
end
|
47
47
|
|
48
48
|
#
|
@@ -56,8 +56,8 @@ module Turnip
|
|
56
56
|
# @return [Array]
|
57
57
|
#
|
58
58
|
def rows
|
59
|
-
@rows ||= @raw
|
60
|
-
row
|
59
|
+
@rows ||= @raw.argument_rows.map do |row|
|
60
|
+
row.cells.map { |c| c.value }
|
61
61
|
end
|
62
62
|
end
|
63
63
|
end
|
data/lib/turnip/node/feature.rb
CHANGED
@@ -23,22 +23,25 @@ module Turnip
|
|
23
23
|
include HasTags
|
24
24
|
|
25
25
|
def language
|
26
|
-
@raw
|
26
|
+
@raw.language
|
27
27
|
end
|
28
28
|
|
29
29
|
def children
|
30
|
-
@children ||= @raw
|
31
|
-
|
32
|
-
next Background.new(child
|
30
|
+
@children ||= @raw.children.map do |child|
|
31
|
+
if child.is_a?(CukeModeler::Background)
|
32
|
+
next Background.new(child)
|
33
33
|
end
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
next klass.new(child[:scenario])
|
35
|
+
if child.is_a?(CukeModeler::Scenario)
|
36
|
+
next Scenario.new(child)
|
38
37
|
end
|
39
38
|
|
40
|
-
|
41
|
-
next
|
39
|
+
if child.is_a?(CukeModeler::Outline)
|
40
|
+
next ScenarioOutline.new(child)
|
41
|
+
end
|
42
|
+
|
43
|
+
if child.is_a?(CukeModeler::Rule)
|
44
|
+
next Rule.new(child)
|
42
45
|
end
|
43
46
|
end.compact
|
44
47
|
end
|
data/lib/turnip/node/location.rb
CHANGED
data/lib/turnip/node/rule.rb
CHANGED
@@ -16,14 +16,17 @@ module Turnip
|
|
16
16
|
#
|
17
17
|
class Rule < ScenarioGroupDefinition
|
18
18
|
def children
|
19
|
-
@children ||= @raw
|
20
|
-
|
21
|
-
next Background.new(child
|
19
|
+
@children ||= @raw.children.map do |child|
|
20
|
+
if child.is_a?(CukeModeler::Background)
|
21
|
+
next Background.new(child)
|
22
22
|
end
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
if child.is_a?(CukeModeler::Scenario)
|
25
|
+
next Scenario.new(child)
|
26
|
+
end
|
27
|
+
|
28
|
+
if child.is_a?(CukeModeler::Outline)
|
29
|
+
next ScenarioOutline.new(child)
|
27
30
|
end
|
28
31
|
end.compact
|
29
32
|
end
|
@@ -5,19 +5,19 @@ module Turnip
|
|
5
5
|
module Node
|
6
6
|
class ScenarioDefinition < Base
|
7
7
|
def name
|
8
|
-
@raw
|
8
|
+
@raw.name
|
9
9
|
end
|
10
10
|
|
11
11
|
def keyword
|
12
|
-
@raw
|
12
|
+
@raw.keyword
|
13
13
|
end
|
14
14
|
|
15
15
|
def description
|
16
|
-
@raw
|
16
|
+
@raw.description
|
17
17
|
end
|
18
18
|
|
19
19
|
def steps
|
20
|
-
@steps ||= @raw
|
20
|
+
@steps ||= @raw.steps.map do |step|
|
21
21
|
Step.new(step)
|
22
22
|
end
|
23
23
|
end
|
@@ -7,15 +7,15 @@ module Turnip
|
|
7
7
|
module Node
|
8
8
|
class ScenarioGroupDefinition < Base
|
9
9
|
def name
|
10
|
-
@raw
|
10
|
+
@raw.name
|
11
11
|
end
|
12
12
|
|
13
13
|
def keyword
|
14
|
-
@raw
|
14
|
+
@raw.keyword
|
15
15
|
end
|
16
16
|
|
17
17
|
def description
|
18
|
-
@raw
|
18
|
+
@raw.description
|
19
19
|
end
|
20
20
|
|
21
21
|
def backgrounds
|
@@ -20,7 +20,7 @@ module Turnip
|
|
20
20
|
include HasTags
|
21
21
|
|
22
22
|
def examples
|
23
|
-
@examples ||= @raw
|
23
|
+
@examples ||= @raw.examples.map do |raw|
|
24
24
|
Example.new(raw)
|
25
25
|
end
|
26
26
|
end
|
@@ -57,27 +57,27 @@ module Turnip
|
|
57
57
|
header = example.header
|
58
58
|
|
59
59
|
example.rows.map do |row|
|
60
|
-
|
60
|
+
scenario = convert_metadata_to_scenario(header, row)
|
61
61
|
|
62
62
|
#
|
63
63
|
# Replace <placeholder> using Example values
|
64
64
|
#
|
65
|
-
|
66
|
-
step
|
65
|
+
scenario.steps.each do |step|
|
66
|
+
step.text = substitute(step.text, header, row)
|
67
67
|
|
68
68
|
case
|
69
|
-
when step
|
70
|
-
step
|
71
|
-
when step
|
72
|
-
step
|
73
|
-
table_row
|
74
|
-
cell
|
69
|
+
when step.block&.is_a?(CukeModeler::DocString)
|
70
|
+
step.block.content = substitute(step.block.content, header, row)
|
71
|
+
when step.block&.is_a?(CukeModeler::Table)
|
72
|
+
step.block.rows.map do |table_row|
|
73
|
+
table_row.cells.map do |cell|
|
74
|
+
cell.value = substitute(cell.value, header, row)
|
75
75
|
end
|
76
76
|
end
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
|
-
Scenario.new(
|
80
|
+
Scenario.new(scenario)
|
81
81
|
end
|
82
82
|
end.flatten.compact
|
83
83
|
end
|
@@ -117,11 +117,14 @@ module Turnip
|
|
117
117
|
#
|
118
118
|
def convert_metadata_to_scenario(header, row)
|
119
119
|
# deep copy
|
120
|
-
Marshal.load(Marshal.dump(raw))
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
120
|
+
original = Marshal.load(Marshal.dump(raw))
|
121
|
+
|
122
|
+
CukeModeler::Scenario.new.tap do |scenario|
|
123
|
+
scenario.name = substitute(original.name, header, row)
|
124
|
+
scenario.keyword = 'Scenario' # TODO: Do we need to worry about dialects other than English?
|
125
|
+
scenario.steps = original.steps
|
126
|
+
scenario.source_line = original.source_line
|
127
|
+
scenario.source_column = original.source_column
|
125
128
|
end
|
126
129
|
end
|
127
130
|
|
data/lib/turnip/node/step.rb
CHANGED
@@ -16,11 +16,12 @@ module Turnip
|
|
16
16
|
#
|
17
17
|
class Step < Base
|
18
18
|
def keyword
|
19
|
-
|
19
|
+
# TODO: Do we want to keep the whitespace?
|
20
|
+
@raw.keyword + ' '
|
20
21
|
end
|
21
22
|
|
22
23
|
def text
|
23
|
-
@raw
|
24
|
+
@raw.text
|
24
25
|
end
|
25
26
|
|
26
27
|
#
|
@@ -32,10 +33,10 @@ module Turnip
|
|
32
33
|
|
33
34
|
def argument
|
34
35
|
@argument ||= case
|
35
|
-
when @raw
|
36
|
-
doc_string(@raw
|
37
|
-
when @raw
|
38
|
-
data_table(@raw
|
36
|
+
when @raw.block&.is_a?(CukeModeler::DocString)
|
37
|
+
doc_string(@raw.block)
|
38
|
+
when @raw.block&.is_a?(CukeModeler::Table)
|
39
|
+
data_table(@raw.block)
|
39
40
|
end
|
40
41
|
end
|
41
42
|
|
@@ -46,13 +47,13 @@ module Turnip
|
|
46
47
|
private
|
47
48
|
|
48
49
|
def doc_string(doc)
|
49
|
-
doc
|
50
|
+
doc.content
|
50
51
|
end
|
51
52
|
|
52
53
|
def data_table(table)
|
53
|
-
rows = table
|
54
|
-
row
|
55
|
-
cell
|
54
|
+
rows = table.rows.map do |row|
|
55
|
+
row.cells.map do |cell|
|
56
|
+
cell.value
|
56
57
|
end
|
57
58
|
end
|
58
59
|
Turnip::Table.new(rows)
|
data/lib/turnip/node/tag.rb
CHANGED
@@ -13,7 +13,7 @@ module Turnip
|
|
13
13
|
#
|
14
14
|
class Tag < Base
|
15
15
|
def name
|
16
|
-
@name ||= @raw
|
16
|
+
@name ||= @raw.name.gsub(/^@/, '')
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -22,7 +22,7 @@ module Turnip
|
|
22
22
|
# @return [Array] Array of Tag
|
23
23
|
#
|
24
24
|
def tags
|
25
|
-
@tags ||= @raw.
|
25
|
+
@tags ||= @raw.tags.map do |tag|
|
26
26
|
Tag.new(tag)
|
27
27
|
end
|
28
28
|
end
|
data/lib/turnip/rspec.rb
CHANGED
@@ -40,25 +40,35 @@ module Turnip
|
|
40
40
|
include Turnip::Execute
|
41
41
|
|
42
42
|
def run_step(feature_file, step)
|
43
|
+
reporter = ::RSpec.current_example.reporter
|
44
|
+
reporter.publish(:step_started, { step: step })
|
45
|
+
|
43
46
|
begin
|
44
47
|
instance_eval <<-EOS, feature_file, step.line
|
45
48
|
step(step)
|
46
49
|
EOS
|
47
50
|
rescue Turnip::Pending => e
|
51
|
+
reporter.publish(:step_pending, { step: step })
|
52
|
+
|
48
53
|
example = ::RSpec.current_example
|
49
54
|
example.metadata[:line_number] = step.line
|
50
55
|
example.metadata[:location] = "#{example.metadata[:file_path]}:#{step.line}"
|
51
56
|
|
57
|
+
missing_step_message = "No such step: '#{e}' #{feature_file}:#{step.line}"
|
52
58
|
if ::RSpec.configuration.raise_error_for_unimplemented_steps
|
53
59
|
e.backtrace.push "#{feature_file}:#{step.line}:in `#{step.description}'"
|
54
|
-
raise
|
60
|
+
raise e, missing_step_message
|
55
61
|
end
|
56
62
|
|
57
|
-
skip(
|
63
|
+
skip(missing_step_message)
|
58
64
|
rescue StandardError, ::RSpec::Expectations::ExpectationNotMetError => e
|
65
|
+
reporter.publish(:step_failed, { step: step })
|
66
|
+
|
59
67
|
e.backtrace.push "#{feature_file}:#{step.line}:in `#{step.description}'"
|
60
68
|
raise e
|
61
69
|
end
|
70
|
+
|
71
|
+
reporter.publish(:step_passed, { step: step })
|
62
72
|
end
|
63
73
|
end
|
64
74
|
|
@@ -91,10 +101,11 @@ module Turnip
|
|
91
101
|
end
|
92
102
|
|
93
103
|
group.scenarios.each do |scenario|
|
94
|
-
|
95
|
-
description =
|
104
|
+
all_steps = background_steps + scenario.steps
|
105
|
+
description = all_steps.map(&:to_s).join(' -> ')
|
106
|
+
metadata = scenario.metadata_hash.merge(turnip_steps: all_steps)
|
96
107
|
|
97
|
-
context.describe scenario.name,
|
108
|
+
context.describe scenario.name, metadata do
|
98
109
|
instance_eval <<-EOS, filename, scenario.line
|
99
110
|
it description do
|
100
111
|
scenario.steps.each do |step|
|
data/lib/turnip/version.rb
CHANGED
data/spec/integration_spec.rb
CHANGED
@@ -12,12 +12,13 @@ describe 'The CLI', :type => :integration do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
it "prints out failures and successes" do
|
15
|
-
@result.should include('
|
15
|
+
@result.should include('46 examples, 4 failures, 6 pending')
|
16
16
|
end
|
17
17
|
|
18
18
|
it "includes features in backtraces" do
|
19
19
|
@result.should include('examples/errors.feature:5:in `raise error')
|
20
20
|
@result.should include('examples/errors.feature:11:in `a step just does not exist')
|
21
|
+
@result.should include("No such step: 'a step just does not exist'")
|
21
22
|
end
|
22
23
|
|
23
24
|
it "includes the right step name when steps call steps" do
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Turnip::Node::Feature do
|
4
|
+
let(:feature) { Turnip::Builder.build(feature_file) }
|
5
|
+
|
6
|
+
context 'a file that specifies a language' do
|
7
|
+
let(:feature_file) { File.expand_path('../../examples/specific_language.feature', __dir__) }
|
8
|
+
|
9
|
+
it 'extracts the language' do
|
10
|
+
feature.language.should eq 'en-au'
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Turnip::RSpec::Execute do
|
4
|
+
let(:mod) { Module.new }
|
5
|
+
let(:obj) { Object.new.tap { |o| o.extend Turnip::RSpec::Execute; o.extend mod; def o.skip(*args); end } }
|
6
|
+
let(:reporter) { RSpec.current_example.reporter }
|
7
|
+
|
8
|
+
before { allow(reporter).to receive(:publish).and_call_original }
|
9
|
+
|
10
|
+
def create_step_node(text)
|
11
|
+
Turnip::Node::Step.new OpenStruct.new(source_line: 1, source_column: 0, text: text)
|
12
|
+
end
|
13
|
+
|
14
|
+
context '#run_step' do
|
15
|
+
it "publishes :step_started event when step is starting" do
|
16
|
+
step = create_step_node "a test step"
|
17
|
+
|
18
|
+
obj.run_step 'test.feature', step
|
19
|
+
|
20
|
+
expect(reporter).to have_received(:publish).with(:step_started, step: step)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "publishes :step_passed event when step has passed" do
|
24
|
+
mod.step("a test step") { true }
|
25
|
+
step = create_step_node "a test step"
|
26
|
+
|
27
|
+
obj.run_step 'test.feature', step
|
28
|
+
|
29
|
+
expect(reporter).to have_received(:publish).with(:step_passed, step: step)
|
30
|
+
end
|
31
|
+
|
32
|
+
it "publishes :step_failed event when step has failed" do
|
33
|
+
mod.step("a failing step") { raise ::RSpec::Expectations::ExpectationNotMetError }
|
34
|
+
step = create_step_node "a failing step"
|
35
|
+
|
36
|
+
begin
|
37
|
+
obj.run_step 'test.feature', step
|
38
|
+
rescue ::RSpec::Expectations::ExpectationNotMetError => e
|
39
|
+
end
|
40
|
+
|
41
|
+
expect(reporter).to have_received(:publish).with(:step_failed, step: step)
|
42
|
+
end
|
43
|
+
|
44
|
+
it "publishes :step_pending event when step is pending" do
|
45
|
+
step = create_step_node "a pending step"
|
46
|
+
|
47
|
+
obj.run_step 'test.feature', step
|
48
|
+
|
49
|
+
expect(reporter).to have_received(:publish).with(:step_pending, step: step)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
data/turnip.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
21
|
s.add_runtime_dependency "rspec", [">=3.0", "<4.0"]
|
22
|
-
s.add_runtime_dependency "
|
22
|
+
s.add_runtime_dependency "cuke_modeler", "~> 3.15"
|
23
23
|
s.add_development_dependency "rake"
|
24
24
|
s.add_development_dependency "pry"
|
25
25
|
s.add_development_dependency "pry-byebug"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turnip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonas Nicklas
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -31,19 +31,19 @@ dependencies:
|
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '4.0'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
34
|
+
name: cuke_modeler
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '
|
39
|
+
version: '3.15'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '
|
46
|
+
version: '3.15'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -97,6 +97,7 @@ files:
|
|
97
97
|
- ".github/workflows/test.yml"
|
98
98
|
- ".gitignore"
|
99
99
|
- ".rspec"
|
100
|
+
- ".tool-versions"
|
100
101
|
- CHANGELOG.md
|
101
102
|
- Gemfile
|
102
103
|
- README.md
|
@@ -115,6 +116,7 @@ files:
|
|
115
116
|
- examples/scenario_outline_scenario_name_substitution.feature
|
116
117
|
- examples/scenario_outline_table_substitution.feature
|
117
118
|
- examples/simple_feature.feature
|
119
|
+
- examples/specific_language.feature
|
118
120
|
- examples/step_calling.feature
|
119
121
|
- examples/steps/alignment_steps.rb
|
120
122
|
- examples/steps/autoload_steps.rb
|
@@ -131,8 +133,8 @@ files:
|
|
131
133
|
- examples/tags.feature
|
132
134
|
- examples/with_backticks.feature
|
133
135
|
- examples/with_comments.feature
|
134
|
-
- gemfiles/Gemfile-rspec-3.
|
135
|
-
- gemfiles/Gemfile-rspec-3.
|
136
|
+
- gemfiles/Gemfile-rspec-3.11.x
|
137
|
+
- gemfiles/Gemfile-rspec-3.12.x
|
136
138
|
- lib/turnip.rb
|
137
139
|
- lib/turnip/builder.rb
|
138
140
|
- lib/turnip/capybara.rb
|
@@ -160,7 +162,9 @@ files:
|
|
160
162
|
- spec/define_and_execute_spec.rb
|
161
163
|
- spec/dsl_spec.rb
|
162
164
|
- spec/integration_spec.rb
|
165
|
+
- spec/nodes/feature_spec.rb
|
163
166
|
- spec/placeholder_spec.rb
|
167
|
+
- spec/reporter_spec.rb
|
164
168
|
- spec/spec_helper.rb
|
165
169
|
- spec/step_definition_spec.rb
|
166
170
|
- spec/table_spec.rb
|
@@ -169,7 +173,7 @@ homepage: https://github.com/jnicklas/turnip/
|
|
169
173
|
licenses:
|
170
174
|
- MIT
|
171
175
|
metadata: {}
|
172
|
-
post_install_message:
|
176
|
+
post_install_message:
|
173
177
|
rdoc_options: []
|
174
178
|
require_paths:
|
175
179
|
- lib
|
@@ -184,8 +188,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
188
|
- !ruby/object:Gem::Version
|
185
189
|
version: '0'
|
186
190
|
requirements: []
|
187
|
-
rubygems_version: 3.
|
188
|
-
signing_key:
|
191
|
+
rubygems_version: 3.1.2
|
192
|
+
signing_key:
|
189
193
|
specification_version: 4
|
190
194
|
summary: Gherkin extension for RSpec
|
191
195
|
test_files:
|
@@ -193,7 +197,9 @@ test_files:
|
|
193
197
|
- spec/define_and_execute_spec.rb
|
194
198
|
- spec/dsl_spec.rb
|
195
199
|
- spec/integration_spec.rb
|
200
|
+
- spec/nodes/feature_spec.rb
|
196
201
|
- spec/placeholder_spec.rb
|
202
|
+
- spec/reporter_spec.rb
|
197
203
|
- spec/spec_helper.rb
|
198
204
|
- spec/step_definition_spec.rb
|
199
205
|
- spec/table_spec.rb
|