gherkin 2.5.4-universal-dotnet → 2.6.0-universal-dotnet
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/Gemfile +2 -0
- data/Gemfile.lock +9 -7
- data/History.md +11 -1
- data/README.md +1 -1
- data/features/json_formatter.feature +376 -310
- data/features/json_parser.feature +245 -228
- data/features/step_definitions/json_formatter_steps.rb +7 -4
- data/features/step_definitions/json_parser_steps.rb +1 -1
- data/features/step_definitions/pretty_formatter_steps.rb +2 -1
- data/gherkin.gemspec +4 -3
- data/lib/gherkin.dll +0 -0
- data/lib/gherkin/formatter/json_formatter.rb +13 -9
- data/lib/gherkin/formatter/model.rb +78 -20
- data/lib/gherkin/formatter/pretty_formatter.rb +1 -1
- data/lib/gherkin/json_parser.rb +32 -24
- data/lib/gherkin/listener/formatter_listener.rb +76 -50
- data/spec/gherkin/fixtures/complex.json +8 -1
- data/spec/gherkin/formatter/json_formatter_spec.rb +49 -43
- data/spec/gherkin/formatter/model_spec.rb +2 -2
- data/spec/gherkin/formatter/pretty_formatter_spec.rb +10 -10
- data/spec/gherkin/json_parser_spec.rb +93 -77
- data/spec/gherkin/sexp_recorder.rb +0 -3
- metadata +25 -25
@@ -1,4 +1,6 @@
|
|
1
|
-
{
|
1
|
+
{
|
2
|
+
"id": "feature-text",
|
3
|
+
"uri": "some/nice.feature",
|
2
4
|
"name": "Feature Text",
|
3
5
|
"keyword": "Feature",
|
4
6
|
"description": "In order to test multiline forms",
|
@@ -20,6 +22,7 @@
|
|
20
22
|
]
|
21
23
|
},
|
22
24
|
{ "type": "scenario_outline",
|
25
|
+
"id": "feature-text/a-scenario-outline",
|
23
26
|
"keyword": "Scenario Outline",
|
24
27
|
"name": "An Scenario Outline",
|
25
28
|
"description": "",
|
@@ -36,6 +39,7 @@
|
|
36
39
|
],
|
37
40
|
"examples": [
|
38
41
|
{
|
42
|
+
"id": "feature-text/a-scenario-outline/sweet-example",
|
39
43
|
"name": "Sweet Example",
|
40
44
|
"keyword": "Examples",
|
41
45
|
"description": "",
|
@@ -52,6 +56,7 @@
|
|
52
56
|
]
|
53
57
|
},
|
54
58
|
{ "type" : "scenario",
|
59
|
+
"id": "feature-text/reading-a-scenario",
|
55
60
|
"keyword": "Scenario",
|
56
61
|
"name" : "Reading a Scenario",
|
57
62
|
"description": "",
|
@@ -67,6 +72,7 @@
|
|
67
72
|
]
|
68
73
|
},
|
69
74
|
{ "type" : "scenario",
|
75
|
+
"id": "feature-text/reading-a-second-scenario",
|
70
76
|
"keyword": "Scenario",
|
71
77
|
"name" : "Reading a second scenario",
|
72
78
|
"description": "With two lines of text",
|
@@ -111,6 +117,7 @@
|
|
111
117
|
]
|
112
118
|
},
|
113
119
|
{ "type" : "scenario",
|
120
|
+
"id": "feature-text/hammerzeit",
|
114
121
|
"keyword": "Scenario",
|
115
122
|
"name" : "Hammerzeit",
|
116
123
|
"description": "",
|
@@ -10,10 +10,10 @@ module Gherkin
|
|
10
10
|
io = StringIO.new
|
11
11
|
f = JSONFormatter.new(io)
|
12
12
|
f.uri("f.feature")
|
13
|
-
f.feature(Model::Feature.new([], [], "Feature", "
|
14
|
-
f.scenario(Model::Scenario.new([], [], "
|
15
|
-
f.step(Model::Step.new([], "Given ", "g", 3))
|
16
|
-
f.step(Model::Step.new([], "When ", "w", 4))
|
13
|
+
f.feature(Model::Feature.new([], [], "Feature", "ff", "", 1, "ff"))
|
14
|
+
f.scenario(Model::Scenario.new([], [], "Scenario", "ss", "", 2, "ff/ss"))
|
15
|
+
f.step(Model::Step.new([], "Given ", "g", 3, nil, nil))
|
16
|
+
f.step(Model::Step.new([], "When ", "w", 4, nil, nil))
|
17
17
|
|
18
18
|
f.match(Model::Match.new([], "def.rb:33"))
|
19
19
|
f.result(Model::Result.new(:passed, 1, nil))
|
@@ -22,49 +22,55 @@ module Gherkin
|
|
22
22
|
f.result(Model::Result.new(:passed, 1, nil))
|
23
23
|
|
24
24
|
f.eof
|
25
|
+
f.close
|
25
26
|
|
26
27
|
expected = %{
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
"
|
28
|
+
[
|
29
|
+
{
|
30
|
+
"id": "ff",
|
31
|
+
"uri": "f.feature",
|
32
|
+
"keyword": "Feature",
|
33
|
+
"name": "ff",
|
34
|
+
"line": 1,
|
35
|
+
"description": "",
|
36
|
+
"elements": [
|
37
|
+
{
|
38
|
+
"id": "ff/ss",
|
39
|
+
"keyword": "Scenario",
|
40
|
+
"name": "ss",
|
41
|
+
"line": 2,
|
42
|
+
"description": "",
|
43
|
+
"type": "scenario",
|
44
|
+
"steps": [
|
45
|
+
{
|
46
|
+
"keyword": "Given ",
|
47
|
+
"name": "g",
|
48
|
+
"line": 3,
|
49
|
+
"match": {
|
50
|
+
"location": "def.rb:33"
|
51
|
+
},
|
52
|
+
"result": {
|
53
|
+
"status": "passed",
|
54
|
+
"duration": 1
|
55
|
+
}
|
46
56
|
},
|
47
|
-
|
48
|
-
"
|
49
|
-
"
|
57
|
+
{
|
58
|
+
"keyword": "When ",
|
59
|
+
"name": "w",
|
60
|
+
"line": 4,
|
61
|
+
"match": {
|
62
|
+
"location": "def.rb:44"
|
63
|
+
},
|
64
|
+
"result": {
|
65
|
+
"status": "passed",
|
66
|
+
"duration": 1
|
67
|
+
}
|
50
68
|
}
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
"match": {
|
57
|
-
"location": "def.rb:44"
|
58
|
-
},
|
59
|
-
"result": {
|
60
|
-
"status": "passed",
|
61
|
-
"duration": 1
|
62
|
-
}
|
63
|
-
}
|
64
|
-
]
|
65
|
-
}
|
66
|
-
]
|
67
|
-
}
|
69
|
+
]
|
70
|
+
}
|
71
|
+
]
|
72
|
+
}
|
73
|
+
]
|
68
74
|
}
|
69
75
|
|
70
76
|
JSON.parse(expected).should == JSON.parse(io.string)
|
@@ -14,12 +14,12 @@ module Gherkin
|
|
14
14
|
|
15
15
|
describe Step do
|
16
16
|
it "should provide arguments for outline tokens" do
|
17
|
-
step = Step.new([], 'Given ', "I have <number> cukes in <whose> belly", 10)
|
17
|
+
step = Step.new([], 'Given ', "I have <number> cukes in <whose> belly", 10, nil, nil)
|
18
18
|
step.outline_args.map{|arg| [arg.offset, arg.val]}.should == [[7, "<number>"], [25, "<whose>"]]
|
19
19
|
end
|
20
20
|
|
21
21
|
it "should provide no arguments when there are no outline tokens" do
|
22
|
-
step = Step.new([], 'Given ', "I have 33 cukes in my belly", 10)
|
22
|
+
step = Step.new([], 'Given ', "I have 33 cukes in my belly", 10, nil, nil)
|
23
23
|
step.outline_args.to_a.should == []
|
24
24
|
end
|
25
25
|
end
|
@@ -36,11 +36,11 @@ module Gherkin
|
|
36
36
|
|
37
37
|
it "should print comments when scenario is longer" do
|
38
38
|
@f.uri("features/foo.feature")
|
39
|
-
@f.feature(Model::Feature.new([], [], "Feature", "Hello", "World", 1))
|
39
|
+
@f.feature(Model::Feature.new([], [], "Feature", "Hello", "World", 1, "hello"))
|
40
40
|
|
41
|
-
@f.scenario(Model::Scenario.new([], [], "Scenario", "The scenario", "", 4))
|
42
|
-
@f.step(Model::Step.new([], "Given ", "some stuff", 5))
|
43
|
-
@f.step(Model::Step.new([], "When ", "foo", 6))
|
41
|
+
@f.scenario(Model::Scenario.new([], [], "Scenario", "The scenario", "", 4, "the-scenario"))
|
42
|
+
@f.step(Model::Step.new([], "Given ", "some stuff", 5, nil, nil))
|
43
|
+
@f.step(Model::Step.new([], "When ", "foo", 6, nil, nil))
|
44
44
|
|
45
45
|
@f.match(Model::Match.new([], "features/step_definitions/bar.rb:56"))
|
46
46
|
@f.result(Model::Result.new('passed', 22, nil))
|
@@ -61,12 +61,12 @@ module Gherkin
|
|
61
61
|
|
62
62
|
it "should print comments when step is longer" do
|
63
63
|
@f.uri("features/foo.feature")
|
64
|
-
@f.feature(Model::Feature.new([], [], "Feature", "Hello", "World", 1))
|
65
|
-
step = Model::Step.new([], "Given ", "some stuff that is longer", 5)
|
64
|
+
@f.feature(Model::Feature.new([], [], "Feature", "Hello", "World", 1, "hello"))
|
65
|
+
step = Model::Step.new([], "Given ", "some stuff that is longer", 5, nil, nil)
|
66
66
|
match = Model::Match.new([], "features/step_definitions/bar.rb:56")
|
67
67
|
result = Model::Result.new('passed', 0, nil)
|
68
68
|
|
69
|
-
@f.scenario(Model::Scenario.new([], [], "Scenario", "The scenario", "", 4))
|
69
|
+
@f.scenario(Model::Scenario.new([], [], "Scenario", "The scenario", "", 4, "the-scenario"))
|
70
70
|
@f.step(step)
|
71
71
|
@f.match(match)
|
72
72
|
@f.result(result)
|
@@ -82,8 +82,8 @@ module Gherkin
|
|
82
82
|
|
83
83
|
it "should highlight arguments for regular steps" do
|
84
84
|
@f.uri("foo.feature")
|
85
|
-
@f.scenario(Model::Scenario.new([], [], "Scenario", "Lots of cukes", "", 3))
|
86
|
-
@f.step(Model::Step.new([], "Given ", "I have 999 cukes in my belly", 3))
|
85
|
+
@f.scenario(Model::Scenario.new([], [], "Scenario", "Lots of cukes", "", 3, "lots-of-cukes"))
|
86
|
+
@f.step(Model::Step.new([], "Given ", "I have 999 cukes in my belly", 3, nil, nil))
|
87
87
|
@f.match(Model::Match.new([Gherkin::Formatter::Argument.new(7, '999')], nil))
|
88
88
|
@f.result(Model::Result.new('passed', 6, nil))
|
89
89
|
|
@@ -150,7 +150,7 @@ Feature: Feature Description
|
|
150
150
|
it "should escape backslashes and pipes" do
|
151
151
|
io = StringIO.new
|
152
152
|
f = Gherkin::Formatter::PrettyFormatter.new(io, true, false)
|
153
|
-
f.__send__(:table, [Gherkin::Formatter::Model::
|
153
|
+
f.__send__(:table, [Gherkin::Formatter::Model::DataTableRow.new([], ['|', '\\'], 1)])
|
154
154
|
io.string.should == ' | \\| | \\\\ |' + "\n"
|
155
155
|
end
|
156
156
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
#encoding: utf-8
|
2
|
+
require 'stringio'
|
2
3
|
require 'spec_helper'
|
3
4
|
require 'gherkin/json_parser'
|
4
5
|
require 'gherkin/formatter/json_formatter'
|
@@ -10,100 +11,115 @@ module Gherkin
|
|
10
11
|
io = StringIO.new
|
11
12
|
f = Formatter::JSONFormatter.new(io)
|
12
13
|
p = JSONParser.new(f, f)
|
13
|
-
p.parse(json
|
14
|
+
p.parse(json)
|
15
|
+
f.close
|
14
16
|
expected = JSON.parse(json)
|
15
17
|
actual = JSON.parse(io.string)
|
16
18
|
actual.should == expected
|
17
19
|
end
|
18
20
|
|
19
21
|
it "should parse a barely empty feature" do
|
20
|
-
check_json(%{
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
check_json(%{[
|
23
|
+
{
|
24
|
+
"id": "one",
|
25
|
+
"uri": "test.feature",
|
26
|
+
"keyword": "Feature",
|
27
|
+
"name": "One",
|
28
|
+
"description": "",
|
29
|
+
"line" : 3
|
30
|
+
}
|
31
|
+
]})
|
26
32
|
end
|
27
33
|
|
28
34
|
it "should parse feature with tags and one scenario" do
|
29
|
-
check_json(%{
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
35
|
+
check_json(%{[
|
36
|
+
{
|
37
|
+
"id": "one",
|
38
|
+
"uri": "test.feature",
|
39
|
+
"tags": [
|
40
|
+
{
|
41
|
+
"name": "@foo",
|
42
|
+
"line": 22
|
43
|
+
}
|
44
|
+
],
|
45
|
+
"keyword": "Feature",
|
46
|
+
"name": "One",
|
47
|
+
"description": "",
|
48
|
+
"line": 3,
|
49
|
+
"elements": [
|
50
|
+
{
|
51
|
+
"id": "one/two",
|
52
|
+
"type": "scenario",
|
53
|
+
"steps": [
|
54
|
+
{
|
55
|
+
"name": "Hello",
|
56
|
+
"rows": [
|
57
|
+
{
|
58
|
+
"cells": ["foo", "bar"]
|
59
|
+
}
|
60
|
+
]
|
61
|
+
}
|
62
|
+
]
|
63
|
+
}
|
64
|
+
]
|
65
|
+
}
|
66
|
+
]})
|
56
67
|
end
|
57
68
|
|
58
69
|
it "should parse feature with match, result and embedding" do
|
59
|
-
check_json(%{
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
"
|
70
|
+
check_json(%{[
|
71
|
+
{
|
72
|
+
"id": "one",
|
73
|
+
"uri": "test.feature",
|
74
|
+
"tags": [
|
75
|
+
{
|
76
|
+
"name": "@foo",
|
77
|
+
"line": 22
|
78
|
+
}
|
79
|
+
],
|
80
|
+
"keyword": "Feature",
|
81
|
+
"name": "One",
|
82
|
+
"description": "",
|
83
|
+
"line": 3,
|
84
|
+
"elements": [
|
85
|
+
{
|
86
|
+
"id": "one/a-scenario",
|
87
|
+
"type": "scenario",
|
88
|
+
"steps": [
|
89
|
+
{
|
90
|
+
"keyword": "Given ",
|
91
|
+
"name": "a passing step",
|
92
|
+
"line": 6,
|
93
|
+
"match": {
|
94
|
+
"arguments": [
|
95
|
+
{
|
96
|
+
"offset": 22,
|
97
|
+
"val": "cukes"
|
98
|
+
}
|
99
|
+
],
|
100
|
+
"location": "features/step_definitions/steps.rb:1"
|
101
|
+
},
|
102
|
+
"result": {
|
103
|
+
"status": "failed",
|
104
|
+
"error_message": "You suck",
|
105
|
+
"duration": -1
|
106
|
+
},
|
107
|
+
"embeddings": [
|
80
108
|
{
|
81
|
-
"
|
82
|
-
"
|
109
|
+
"mime_type": "text/plain",
|
110
|
+
"data": "Tm8sIEknbSBub3QgaW50ZXJlc3RlZCBpbiBkZXZlbG9waW5nIGEgcG93ZXJmdWwgYnJhaW4uIEFsbCBJJ20gYWZ0ZXIgaXMganVzdCBhIG1lZGlvY3JlIGJyYWluLCBzb21ldGhpbmcgbGlrZSB0aGUgUHJlc2lkZW50IG9mIHRoZSBBbWVyaWNhbiBUZWxlcGhvbmUgYW5kIFRlbGVncmFwaCBDb21wYW55Lg=="
|
83
111
|
}
|
84
|
-
]
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
},
|
92
|
-
"embeddings": [
|
93
|
-
{
|
94
|
-
"mime_type": "text/plain",
|
95
|
-
"data": "Tm8sIEknbSBub3QgaW50ZXJlc3RlZCBpbiBkZXZlbG9waW5nIGEgcG93ZXJmdWwgYnJhaW4uIEFsbCBJJ20gYWZ0ZXIgaXMganVzdCBhIG1lZGlvY3JlIGJyYWluLCBzb21ldGhpbmcgbGlrZSB0aGUgUHJlc2lkZW50IG9mIHRoZSBBbWVyaWNhbiBUZWxlcGhvbmUgYW5kIFRlbGVncmFwaCBDb21wYW55Lg=="
|
96
|
-
}
|
97
|
-
]
|
98
|
-
}
|
99
|
-
]
|
100
|
-
}
|
101
|
-
]
|
102
|
-
}})
|
112
|
+
]
|
113
|
+
}
|
114
|
+
]
|
115
|
+
}
|
116
|
+
]
|
117
|
+
}
|
118
|
+
]})
|
103
119
|
end
|
104
120
|
|
105
121
|
it "shoud parse a complex feature" do
|
106
|
-
check_json(fixture("complex.json"))
|
122
|
+
check_json('[' + fixture("complex.json") + ']')
|
107
123
|
end
|
108
124
|
end
|
109
125
|
end
|
@@ -12,9 +12,6 @@ module Gherkin
|
|
12
12
|
# We can't use method_missing - therubyracer isn't able to invoke methods like that.
|
13
13
|
[:comment, :tag, :feature, :background, :scenario, :scenario_outline, :examples, :step, :doc_string, :row, :eof, :uri, :syntax_error].each do |event|
|
14
14
|
define_method(event) do |*args|
|
15
|
-
event = :scenario_outline if event == :scenarioOutline # Special Java Lexer handling
|
16
|
-
event = :doc_string if event == :docString # Special Java Lexer handling
|
17
|
-
event = :syntax_error if event == :syntaxError # Special Java Lexer handling
|
18
15
|
args = rubify(args)
|
19
16
|
args = sexpify(args)
|
20
17
|
@sexps << [event] + args
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gherkin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
prerelease:
|
6
6
|
platform: universal-dotnet
|
7
7
|
authors:
|
@@ -11,11 +11,11 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2011-10-
|
14
|
+
date: 2011-10-30 00:00:00.000000000Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: json
|
18
|
-
requirement: &
|
18
|
+
requirement: &2156685000 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ! '>='
|
@@ -23,21 +23,21 @@ dependencies:
|
|
23
23
|
version: 1.4.6
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
|
-
version_requirements: *
|
26
|
+
version_requirements: *2156685000
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: cucumber
|
29
|
-
requirement: &
|
29
|
+
requirement: &2156684400 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
32
|
- - ! '>='
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 1.1.
|
34
|
+
version: 1.1.1
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
|
-
version_requirements: *
|
37
|
+
version_requirements: *2156684400
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: rake
|
40
|
-
requirement: &
|
40
|
+
requirement: &2156679080 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
43
|
- - ! '>='
|
@@ -45,10 +45,10 @@ dependencies:
|
|
45
45
|
version: 0.9.2
|
46
46
|
type: :development
|
47
47
|
prerelease: false
|
48
|
-
version_requirements: *
|
48
|
+
version_requirements: *2156679080
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
name: bundler
|
51
|
-
requirement: &
|
51
|
+
requirement: &2156678380 !ruby/object:Gem::Requirement
|
52
52
|
none: false
|
53
53
|
requirements:
|
54
54
|
- - ! '>='
|
@@ -56,21 +56,21 @@ dependencies:
|
|
56
56
|
version: 1.0.21
|
57
57
|
type: :development
|
58
58
|
prerelease: false
|
59
|
-
version_requirements: *
|
59
|
+
version_requirements: *2156678380
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
61
|
name: rspec
|
62
|
-
requirement: &
|
62
|
+
requirement: &2156677780 !ruby/object:Gem::Requirement
|
63
63
|
none: false
|
64
64
|
requirements:
|
65
65
|
- - ! '>='
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: 2.
|
67
|
+
version: 2.7.0
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
|
-
version_requirements: *
|
70
|
+
version_requirements: *2156677780
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: therubyracer
|
73
|
-
requirement: &
|
73
|
+
requirement: &2156676480 !ruby/object:Gem::Requirement
|
74
74
|
none: false
|
75
75
|
requirements:
|
76
76
|
- - ! '>='
|
@@ -78,10 +78,10 @@ dependencies:
|
|
78
78
|
version: 0.9.8
|
79
79
|
type: :development
|
80
80
|
prerelease: false
|
81
|
-
version_requirements: *
|
81
|
+
version_requirements: *2156676480
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
83
|
name: yard
|
84
|
-
requirement: &
|
84
|
+
requirement: &2156673240 !ruby/object:Gem::Requirement
|
85
85
|
none: false
|
86
86
|
requirements:
|
87
87
|
- - ! '>='
|
@@ -89,10 +89,10 @@ dependencies:
|
|
89
89
|
version: 0.7.2
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
|
-
version_requirements: *
|
92
|
+
version_requirements: *2156673240
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
94
|
name: rdiscount
|
95
|
-
requirement: &
|
95
|
+
requirement: &2156672000 !ruby/object:Gem::Requirement
|
96
96
|
none: false
|
97
97
|
requirements:
|
98
98
|
- - ! '>='
|
@@ -100,10 +100,10 @@ dependencies:
|
|
100
100
|
version: 1.6.8
|
101
101
|
type: :development
|
102
102
|
prerelease: false
|
103
|
-
version_requirements: *
|
103
|
+
version_requirements: *2156672000
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
105
|
name: term-ansicolor
|
106
|
-
requirement: &
|
106
|
+
requirement: &2156659080 !ruby/object:Gem::Requirement
|
107
107
|
none: false
|
108
108
|
requirements:
|
109
109
|
- - ! '>='
|
@@ -111,10 +111,10 @@ dependencies:
|
|
111
111
|
version: 1.0.6
|
112
112
|
type: :development
|
113
113
|
prerelease: false
|
114
|
-
version_requirements: *
|
114
|
+
version_requirements: *2156659080
|
115
115
|
- !ruby/object:Gem::Dependency
|
116
116
|
name: builder
|
117
|
-
requirement: &
|
117
|
+
requirement: &2156657280 !ruby/object:Gem::Requirement
|
118
118
|
none: false
|
119
119
|
requirements:
|
120
120
|
- - ! '>='
|
@@ -122,7 +122,7 @@ dependencies:
|
|
122
122
|
version: 2.1.2
|
123
123
|
type: :development
|
124
124
|
prerelease: false
|
125
|
-
version_requirements: *
|
125
|
+
version_requirements: *2156657280
|
126
126
|
description: A fast Gherkin lexer/parser based on the Ragel State Machine Compiler.
|
127
127
|
email: cukes@googlegroups.com
|
128
128
|
executables: []
|
@@ -292,7 +292,7 @@ rubyforge_project:
|
|
292
292
|
rubygems_version: 1.8.10
|
293
293
|
signing_key:
|
294
294
|
specification_version: 3
|
295
|
-
summary: gherkin-2.
|
295
|
+
summary: gherkin-2.6.0
|
296
296
|
test_files:
|
297
297
|
- features/escaped_pipes.feature
|
298
298
|
- features/feature_parser.feature
|