gherkin 2.4.21-universal-dotnet → 2.5.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.
@@ -1,21 +1,21 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gherkin (2.4.21)
4
+ gherkin (2.5.0)
5
5
  json (>= 1.4.6)
6
6
 
7
7
  GEM
8
8
  remote: http://rubygems.org/
9
9
  specs:
10
10
  builder (3.0.0)
11
- cucumber (1.0.6)
11
+ cucumber (1.1.0)
12
12
  builder (>= 2.1.2)
13
13
  diff-lcs (>= 1.1.2)
14
- gherkin (~> 2.4.18)
14
+ gherkin (~> 2.5.0)
15
15
  json (>= 1.4.6)
16
16
  term-ansicolor (>= 1.0.6)
17
17
  diff-lcs (1.1.3)
18
- json (1.6.0)
18
+ json (1.6.1)
19
19
  libv8 (3.3.10.2)
20
20
  rake (0.9.2)
21
21
  rake-compiler (0.7.9)
@@ -35,13 +35,12 @@ GEM
35
35
  yard (0.7.2)
36
36
 
37
37
  PLATFORMS
38
- java
39
38
  ruby
40
39
 
41
40
  DEPENDENCIES
42
41
  builder (>= 2.1.2)
43
42
  bundler (>= 1.0.18)
44
- cucumber (>= 1.0.6)
43
+ cucumber (>= 1.1.0)
45
44
  gherkin!
46
45
  rake (>= 0.9.2)
47
46
  rake-compiler (>= 0.7.9)
data/History.md CHANGED
@@ -1,3 +1,74 @@
1
+ ## [2.5.0](https://github.com/cucumber/gherkin/compare/v2.4.21...v2.5.0)
2
+
3
+ ### Changed Features
4
+
5
+ The JSON representation of features has changed. The difference lies in how Doc Strings and Data Tables are represented. Consider the following steps:
6
+
7
+ Given a Data Table:
8
+ | Hipster | Ipsum |
9
+ | Freegan | Vinyl |
10
+ Given a Doc String:
11
+ """
12
+ Hipster
13
+ Ipsum
14
+ """
15
+
16
+ This is now represented in JSON as:
17
+
18
+ "steps": [
19
+ {
20
+ "keyword": "Given ",
21
+ "name": "a Data Table"
22
+ "line": 5,
23
+ "rows": [
24
+ { "cells": ["Hipster", "Ipsum"], "line": 6 },
25
+ { "cells": ["Freegan", "Vinyl"], "line": 7 }
26
+ ]
27
+ },
28
+ {
29
+ "keyword": "Given ",
30
+ "name": "a Doc String"
31
+ "line": 8,
32
+ "doc_string": {
33
+ "value": "Hipster\nIpsum"
34
+ "line": 9,
35
+ "content_type": "plaintext",
36
+ }
37
+ }
38
+ ]
39
+
40
+ Previously it would be represented in JSON as:
41
+
42
+ "steps": [
43
+ {
44
+ "keyword": "Given ",
45
+ "name": "a Data Table"
46
+ "line": 5,
47
+ "multiline_arg": {
48
+ "type": "table"
49
+ "value": [
50
+ { "cells": ["Hipster", "Ipsum"], "line": 6 },
51
+ { "cells": ["Freegan", "Vinyl"], "line": 7 }
52
+ ]
53
+ }
54
+ },
55
+ {
56
+ "keyword": "Given ",
57
+ "name": "a Doc String"
58
+ "line": 8,
59
+ "multiline_arg": {
60
+ "type": "doc_string"
61
+ "value": "Hipster\nIpsum"
62
+ "line": 9,
63
+ "content_type": "plaintext",
64
+ }
65
+ }
66
+ ]
67
+
68
+ ### Bugfixes
69
+ * Java JSONFormatter produces invalid JSON ([#128](https://github.com/cucumber/gherkin/issues/128) Aslak Hellesøy)
70
+ * Missing matches and results in JSONFormatter output ([#129](https://github.com/cucumber/gherkin/issues/129) Aslak Hellesøy)
71
+
1
72
  ## [2.4.21](https://github.com/cucumber/gherkin/compare/v2.4.20...v2.4.21)
2
73
 
3
74
  ### Bugfixes
@@ -71,154 +71,208 @@ Feature: JSON formatter
71
71
  Then the outputted JSON should be:
72
72
  """
73
73
  {
74
- "tags": [{"name": "@one", "line":1}],
75
- "keyword": "Feature",
76
- "name": "OH HAI",
77
74
  "description": "",
78
- "line": 2,
79
- "elements":[
75
+ "elements": [
80
76
  {
81
- "type": "scenario",
82
- "keyword": "Scenario",
83
- "name": "Fujin",
84
77
  "description": "",
78
+ "keyword": "Scenario",
85
79
  "line": 4,
80
+ "name": "Fujin",
86
81
  "steps": [
87
82
  {
88
83
  "keyword": "Given ",
89
- "name": "wind",
90
- "line": 5
84
+ "line": 5,
85
+ "name": "wind"
91
86
  },
92
87
  {
93
88
  "keyword": "Then ",
94
- "name": "spirit",
95
- "line": 6
89
+ "line": 6,
90
+ "name": "spirit"
96
91
  }
97
- ]
92
+ ],
93
+ "type": "scenario"
98
94
  },
99
95
  {
100
- "type": "scenario",
101
- "tags": [{"name": "@two", "line":8}],
102
- "keyword": "Scenario",
103
- "name": "_why",
104
96
  "description": "",
97
+ "keyword": "Scenario",
105
98
  "line": 9,
99
+ "name": "_why",
106
100
  "steps": [
107
101
  {
108
102
  "keyword": "Given ",
109
- "name": "chunky",
110
- "line": 10
103
+ "line": 10,
104
+ "name": "chunky"
111
105
  },
112
106
  {
113
107
  "keyword": "Then ",
114
- "name": "bacon",
115
- "line": 11
108
+ "line": 11,
109
+ "name": "bacon"
116
110
  }
117
- ]
118
- },
119
- {
120
- "type": "scenario_outline",
121
- "tags": [{"name": "@three", "line":13}, {"name": "@four", "line":13}],
122
- "keyword": "Scenario Outline",
123
- "name": "Life",
124
- "description": "",
125
- "line": 14,
126
- "steps": [
111
+ ],
112
+ "tags": [
127
113
  {
128
- "keyword": "Given ",
129
- "name": "some <boredom>",
130
- "line": 15
114
+ "line": 8,
115
+ "name": "@two"
131
116
  }
132
117
  ],
118
+ "type": "scenario"
119
+ },
120
+ {
121
+ "description": "",
133
122
  "examples": [
134
123
  {
135
- "tags": [{"name": "@five", "line":17}],
136
- "keyword": "Examples",
137
- "name": "Real life",
138
124
  "description": "",
125
+ "keyword": "Examples",
139
126
  "line": 18,
127
+ "name": "Real life",
140
128
  "rows": [
141
129
  {
142
- "cells": ["boredom"],
130
+ "cells": [
131
+ "boredom"
132
+ ],
143
133
  "line": 19
144
134
  },
145
135
  {
146
- "cells": ["airport"],
136
+ "cells": [
137
+ "airport"
138
+ ],
147
139
  "line": 20
148
140
  },
149
141
  {
150
- "cells": ["meeting"],
142
+ "cells": [
143
+ "meeting"
144
+ ],
151
145
  "line": 21
152
146
  }
147
+ ],
148
+ "tags": [
149
+ {
150
+ "line": 17,
151
+ "name": "@five"
152
+ }
153
153
  ]
154
154
  }
155
- ]
155
+ ],
156
+ "keyword": "Scenario Outline",
157
+ "line": 14,
158
+ "name": "Life",
159
+ "steps": [
160
+ {
161
+ "keyword": "Given ",
162
+ "line": 15,
163
+ "name": "some <boredom>"
164
+ }
165
+ ],
166
+ "tags": [
167
+ {
168
+ "line": 13,
169
+ "name": "@three"
170
+ },
171
+ {
172
+ "line": 13,
173
+ "name": "@four"
174
+ }
175
+ ],
176
+ "type": "scenario_outline"
156
177
  },
157
178
  {
158
- "type": "scenario",
159
- "keyword": "Scenario",
160
- "name": "who stole my mojo?",
161
179
  "description": "",
180
+ "keyword": "Scenario",
162
181
  "line": 23,
182
+ "name": "who stole my mojo?",
163
183
  "steps": [
164
184
  {
165
185
  "keyword": "When ",
166
- "name": "I was",
167
186
  "line": 24,
168
- "multiline_arg": {
169
- "type": "table",
170
- "value": [
171
- {
172
- "line": 25,
173
- "cells": ["asleep"]
174
- }
175
- ]
176
- }
187
+ "name": "I was",
188
+ "rows": [
189
+ {
190
+ "cells": [
191
+ "asleep"
192
+ ],
193
+ "line": 25
194
+ }
195
+ ]
177
196
  },
178
197
  {
198
+ "doc_string": {
199
+ "content_type": "plaintext",
200
+ "line": 27,
201
+ "value": "innocent"
202
+ },
179
203
  "keyword": "And ",
180
- "name": "so",
181
204
  "line": 26,
182
- "multiline_arg": {
183
- "type": "doc_string",
184
- "content_type": "plaintext",
185
- "value": "innocent",
186
- "line": 27
187
- }
205
+ "name": "so"
188
206
  }
189
- ]
207
+ ],
208
+ "type": "scenario"
190
209
  },
191
210
  {
192
- "type": "scenario_outline",
193
- "comments": [{"value": "# The", "line":31}],
194
- "keyword": "Scenario Outline",
195
- "name": "with",
196
- "description": "",
197
- "line": 32,
198
- "steps": [
211
+ "comments": [
199
212
  {
200
- "comments": [{"value": "# all", "line":33}],
201
- "keyword": "Then ",
202
- "line": 34,
203
- "name": "nice"
213
+ "line": 31,
214
+ "value": "# The"
204
215
  }
205
216
  ],
217
+ "description": "",
206
218
  "examples": [
207
219
  {
208
- "comments": [{"value": "# comments", "line": 36}, {"value": "# everywhere", "line": 37}],
209
- "keyword": "Examples",
210
- "name": "An example",
220
+ "comments": [
221
+ {
222
+ "line": 36,
223
+ "value": "# comments"
224
+ },
225
+ {
226
+ "line": 37,
227
+ "value": "# everywhere"
228
+ }
229
+ ],
211
230
  "description": "",
231
+ "keyword": "Examples",
212
232
  "line": 38,
233
+ "name": "An example",
213
234
  "rows": [
214
235
  {
215
- "comments": [{"value": "# I mean", "line": 39}],
216
- "line": 40,
217
- "cells": ["partout"]
236
+ "cells": [
237
+ "partout"
238
+ ],
239
+ "comments": [
240
+ {
241
+ "line": 39,
242
+ "value": "# I mean"
243
+ }
244
+ ],
245
+ "line": 40
218
246
  }
219
247
  ]
220
248
  }
221
- ]
249
+ ],
250
+ "keyword": "Scenario Outline",
251
+ "line": 32,
252
+ "name": "with",
253
+ "steps": [
254
+ {
255
+ "comments": [
256
+ {
257
+ "line": 33,
258
+ "value": "# all"
259
+ }
260
+ ],
261
+ "keyword": "Then ",
262
+ "line": 34,
263
+ "name": "nice"
264
+ }
265
+ ],
266
+ "type": "scenario_outline"
267
+ }
268
+ ],
269
+ "keyword": "Feature",
270
+ "line": 2,
271
+ "name": "OH HAI",
272
+ "tags": [
273
+ {
274
+ "line": 1,
275
+ "name": "@one"
222
276
  }
223
277
  ]
224
278
  }
@@ -144,24 +144,20 @@ Feature: JSON lexer
144
144
  "keyword": "When ",
145
145
  "name": "I was",
146
146
  "line": 24,
147
- "multiline_arg": {
148
- "type": "table",
149
- "value": [
150
- {
151
- "comments": [],
152
- "line": 25,
153
- "cells": ["asleep"]
154
- }
155
- ]
156
- }
147
+ "rows": [
148
+ {
149
+ "comments": [],
150
+ "line": 25,
151
+ "cells": ["asleep"]
152
+ }
153
+ ]
157
154
  },
158
155
  {
159
156
  "comments": [],
160
157
  "keyword": "And ",
161
158
  "name": "so",
162
159
  "line": 26,
163
- "multiline_arg": {
164
- "type": "doc_string",
160
+ "doc_string": {
165
161
  "value": "innocent",
166
162
  "line": 27
167
163
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "gherkin"
5
- s.version = "2.4.21"
5
+ s.version = "2.5.0"
6
6
  s.authors = ["Mike Sassak", "Gregory Hnatiuk", "Aslak Hellesøy"]
7
7
  s.description = "A fast Gherkin lexer/parser based on the Ragel State Machine Compiler."
8
8
  s.summary = "#{s.name}-#{s.version}"
@@ -46,7 +46,7 @@ Gem::Specification.new do |s|
46
46
  # Hack because json is released as two different versions for MRI and JRuby :-/
47
47
  s.add_dependency('json', '>= 1.4.6')
48
48
 
49
- s.add_development_dependency('cucumber', '>= 1.0.6')
49
+ s.add_development_dependency('cucumber', '>= 1.1.0')
50
50
  s.add_development_dependency('rake', '>= 0.9.2')
51
51
  s.add_development_dependency('bundler', '>= 1.0.18')
52
52
  s.add_development_dependency('rspec', '>= 2.6.0')
Binary file
@@ -29,14 +29,17 @@ module Gherkin
29
29
 
30
30
  def background(background)
31
31
  feature_elements << background.to_hash
32
+ @step_index = 0
32
33
  end
33
34
 
34
35
  def scenario(scenario)
35
36
  feature_elements << scenario.to_hash
37
+ @step_index = 0
36
38
  end
37
39
 
38
40
  def scenario_outline(scenario_outline)
39
41
  feature_elements << scenario_outline.to_hash
42
+ @step_index = 0
40
43
  end
41
44
 
42
45
  def examples(examples)
@@ -48,11 +51,16 @@ module Gherkin
48
51
  end
49
52
 
50
53
  def match(match)
51
- last_step['match'] = match.to_hash
54
+ current_steps[@step_index]['match'] = match.to_hash
52
55
  end
53
56
 
54
57
  def result(result)
55
- last_step['result'] = result.to_hash
58
+ current_steps[@step_index]['result'] = result.to_hash
59
+ @step_index += 1
60
+ end
61
+
62
+ def last_step
63
+ current_steps[-1]
56
64
  end
57
65
 
58
66
  def embedding(mime_type, data)
@@ -81,10 +89,6 @@ module Gherkin
81
89
  feature_element['steps'] ||= []
82
90
  end
83
91
 
84
- def last_step
85
- current_steps[-1]
86
- end
87
-
88
92
  def embeddings
89
93
  last_step['embeddings'] ||= []
90
94
  end
@@ -112,15 +112,15 @@ module Gherkin
112
112
  class Step < BasicStatement
113
113
  native_impl('gherkin')
114
114
 
115
- attr_accessor :multiline_arg
115
+ attr_accessor :rows
116
+ attr_accessor :doc_string
116
117
 
117
118
  def line_range
118
119
  range = super
119
- case multiline_arg
120
- when Array
121
- range = range.first..multiline_arg[-1].line
122
- when Model::DocString
123
- range = range.first..multiline_arg.line_range.last
120
+ if(rows)
121
+ range = range.first..rows[-1].line
122
+ elsif(doc_string)
123
+ range = range.first..doc_string.line_range.last
124
124
  end
125
125
  range
126
126
  end
@@ -136,20 +136,6 @@ module Gherkin
136
136
  Argument.new(offset, val)
137
137
  end
138
138
  end
139
-
140
- def to_hash
141
- hash = super
142
- if Array === @multiline_arg
143
- hash['multiline_arg'] = {
144
- 'type' => 'table',
145
- 'value' => hash['multiline_arg']
146
- }
147
- elsif DocString === @multiline_arg
148
- hash['multiline_arg']['type'] = 'doc_string'
149
- hash['multiline_arg']['content_type'] = @multiline_arg.content_type
150
- end
151
- hash
152
- end
153
139
  end
154
140
 
155
141
  class Comment < Hashable
@@ -110,12 +110,9 @@ module Gherkin
110
110
  @io.write(text_format.text(step.keyword))
111
111
  @step_printer.write_step(@io, text_format, arg_format, step.name, arguments)
112
112
  @io.puts(indented_location(location, proceed))
113
- case step.multiline_arg
114
- when Model::DocString
115
- doc_string(step.multiline_arg)
116
- when Array
117
- table(step.multiline_arg)
118
- end
113
+
114
+ doc_string(step.doc_string) if step.doc_string
115
+ table(step.rows) if step.rows
119
116
  end
120
117
 
121
118
  class MonochromeFormat
@@ -53,12 +53,11 @@ module Gherkin
53
53
  def step(o)
54
54
  step = Formatter::Model::Step.new(comments(o), keyword(o), name(o), line(o))
55
55
 
56
- if(ma = o['multiline_arg'])
57
- if(ma['type'] == 'table')
58
- step.multiline_arg = rows(ma['value'])
59
- else
60
- step.multiline_arg = Formatter::Model::DocString.new(ma['content_type'].to_s, ma['value'], ma['line'])
61
- end
56
+ if(o['rows'])
57
+ step.rows = rows(o['rows'])
58
+ elsif(o['doc_string'])
59
+ ds = o['doc_string']
60
+ step.doc_string = Formatter::Model::DocString.new(ds['content_type'].to_s, ds['value'], ds['line'])
62
61
  end
63
62
 
64
63
  step
@@ -98,7 +98,11 @@ module Gherkin
98
98
 
99
99
  def replay_step_or_examples
100
100
  if(@step_statement)
101
- @step_statement.multiline_arg = grab_doc_string! || grab_rows!
101
+ if(doc_string = grab_doc_string!)
102
+ @step_statement.doc_string = doc_string
103
+ elsif(rows = grab_rows!)
104
+ @step_statement.rows = rows
105
+ end
102
106
  @formatter.step(@step_statement)
103
107
  @step_statement = nil
104
108
  end
@@ -29,14 +29,9 @@
29
29
  "steps": [
30
30
  { "name": "A step with a table",
31
31
  "keyword": "Given ",
32
- "multiline_arg": {
33
- "type": "table",
34
- "value" : [
35
- {"cells":
36
- [ "a","row","for","a","step" ]
37
- }
38
- ]
39
- }
32
+ "rows" : [
33
+ {"cells": [ "a","row","for","a","step" ]}
34
+ ]
40
35
  }
41
36
  ],
42
37
  "examples": [
@@ -79,41 +74,35 @@
79
74
  "steps" : [
80
75
  { "name" : "a third step with a table",
81
76
  "keyword": "Given ",
82
- "multiline_arg": {
83
- "type": "table",
84
- "value": [
85
- {
86
- "cells" : [ "a","b" ],
87
- "line" : 987
88
- },
89
- { "cells" :
90
- [ "c","d" ]
91
- },
92
- { "cells" :
93
- [ "e", "f" ]
94
- }
95
- ]
96
- }
77
+ "rows": [
78
+ {
79
+ "cells" : [ "a","b" ],
80
+ "line" : 987
81
+ },
82
+ { "cells" :
83
+ [ "c","d" ]
84
+ },
85
+ { "cells" :
86
+ [ "e", "f" ]
87
+ }
88
+ ]
97
89
  },
98
90
  { "name" : "I am still testing things",
99
91
  "keyword": "Given ",
100
- "multiline_arg": {
101
- "type": "table",
102
- "value": [
103
- { "cells" :
104
- [ "g","h" ]
105
- },
106
- { "cells" :
107
- [ "e","r" ]
108
- },
109
- { "cells" :
110
- [ "k", "i" ]
111
- },
112
- { "cells" :
113
- [ "n", "" ]
114
- }
115
- ]
116
- }
92
+ "rows": [
93
+ { "cells" :
94
+ [ "g","h" ]
95
+ },
96
+ { "cells" :
97
+ [ "e","r" ]
98
+ },
99
+ { "cells" :
100
+ [ "k", "i" ]
101
+ },
102
+ { "cells" :
103
+ [ "n", "" ]
104
+ }
105
+ ]
117
106
  },
118
107
  { "name" : "I am done testing these tables",
119
108
  "keyword": "Given " },
@@ -128,8 +117,7 @@
128
117
  "steps" : [
129
118
  { "name" : "All work and no play",
130
119
  "keyword": "Given ",
131
- "multiline_arg": {
132
- "type": "doc_string",
120
+ "doc_string": {
133
121
  "content_type": "text",
134
122
  "value": "Makes Homer something something\nAnd something else",
135
123
  "line": 777
@@ -0,0 +1,74 @@
1
+ require 'spec_helper'
2
+ require 'stringio'
3
+ require 'gherkin/formatter/json_formatter'
4
+ require 'gherkin/formatter/model'
5
+
6
+ module Gherkin
7
+ module Formatter
8
+ describe JSONFormatter do
9
+ it "renders results" do
10
+ io = StringIO.new
11
+ f = JSONFormatter.new(io)
12
+ f.uri("f.feature")
13
+ f.feature(Model::Feature.new([], [], "Feature", "f", "", 1))
14
+ f.scenario(Model::Scenario.new([], [], "Feature", "f", "", 2))
15
+ f.step(Model::Step.new([], "Given ", "g", 3))
16
+ f.step(Model::Step.new([], "When ", "w", 4))
17
+
18
+ f.match(Model::Match.new([], "def.rb:33"))
19
+ f.result(Model::Result.new(:passed, 1, nil))
20
+
21
+ f.match(Model::Match.new([], "def.rb:44"))
22
+ f.result(Model::Result.new(:passed, 1, nil))
23
+
24
+ f.eof
25
+
26
+ expected = %{
27
+ {
28
+ "keyword": "Feature",
29
+ "name": "f",
30
+ "line": 1,
31
+ "description": "",
32
+ "elements": [
33
+ {
34
+ "keyword": "Feature",
35
+ "name": "f",
36
+ "line": 2,
37
+ "description": "",
38
+ "type": "scenario",
39
+ "steps": [
40
+ {
41
+ "keyword": "Given ",
42
+ "name": "g",
43
+ "line": 3,
44
+ "match": {
45
+ "location": "def.rb:33"
46
+ },
47
+ "result": {
48
+ "status": "passed",
49
+ "duration": 1
50
+ }
51
+ },
52
+ {
53
+ "keyword": "When ",
54
+ "name": "w",
55
+ "line": 4,
56
+ "match": {
57
+ "location": "def.rb:44"
58
+ },
59
+ "result": {
60
+ "status": "passed",
61
+ "duration": 1
62
+ }
63
+ }
64
+ ]
65
+ }
66
+ ]
67
+ }
68
+ }
69
+
70
+ JSON.parse(expected).should == JSON.parse(io.string)
71
+ end
72
+ end
73
+ end
74
+ end
@@ -43,14 +43,11 @@ module Gherkin
43
43
  "steps": [
44
44
  {
45
45
  "name": "Hello",
46
- "multiline_arg": {
47
- "type": "table",
48
- "value": [
49
- {
50
- "cells": ["foo", "bar"]
51
- }
52
- ]
53
- }
46
+ "rows": [
47
+ {
48
+ "cells": ["foo", "bar"]
49
+ }
50
+ ]
54
51
  }
55
52
  ]
56
53
  }
@@ -1,3 +1,4 @@
1
+
1
2
  unless ENV['RUBY_CC_VERSION']
2
3
  require 'cucumber/rake/task'
3
4
 
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.21
4
+ version: 2.5.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-09-16 00:00:00.000000000Z
14
+ date: 2011-09-22 00:00:00.000000000Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: json
18
- requirement: &2152557940 !ruby/object:Gem::Requirement
18
+ requirement: &2155955960 !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: *2152557940
26
+ version_requirements: *2155955960
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: cucumber
29
- requirement: &2152557360 !ruby/object:Gem::Requirement
29
+ requirement: &2155950940 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ! '>='
33
33
  - !ruby/object:Gem::Version
34
- version: 1.0.6
34
+ version: 1.1.0
35
35
  type: :development
36
36
  prerelease: false
37
- version_requirements: *2152557360
37
+ version_requirements: *2155950940
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: rake
40
- requirement: &2152556680 !ruby/object:Gem::Requirement
40
+ requirement: &2155927640 !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: *2152556680
48
+ version_requirements: *2155927640
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: bundler
51
- requirement: &2152555840 !ruby/object:Gem::Requirement
51
+ requirement: &2155926020 !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements:
54
54
  - - ! '>='
@@ -56,10 +56,10 @@ dependencies:
56
56
  version: 1.0.18
57
57
  type: :development
58
58
  prerelease: false
59
- version_requirements: *2152555840
59
+ version_requirements: *2155926020
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: rspec
62
- requirement: &2152555380 !ruby/object:Gem::Requirement
62
+ requirement: &2155925000 !ruby/object:Gem::Requirement
63
63
  none: false
64
64
  requirements:
65
65
  - - ! '>='
@@ -67,10 +67,10 @@ dependencies:
67
67
  version: 2.6.0
68
68
  type: :development
69
69
  prerelease: false
70
- version_requirements: *2152555380
70
+ version_requirements: *2155925000
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: therubyracer
73
- requirement: &2152554760 !ruby/object:Gem::Requirement
73
+ requirement: &2155923680 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
76
76
  - - ! '>='
@@ -78,10 +78,10 @@ dependencies:
78
78
  version: 0.9.4
79
79
  type: :development
80
80
  prerelease: false
81
- version_requirements: *2152554760
81
+ version_requirements: *2155923680
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: yard
84
- requirement: &2152554300 !ruby/object:Gem::Requirement
84
+ requirement: &2155922360 !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: *2152554300
92
+ version_requirements: *2155922360
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: rdiscount
95
- requirement: &2152553840 !ruby/object:Gem::Requirement
95
+ requirement: &2152900280 !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: *2152553840
103
+ version_requirements: *2152900280
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: term-ansicolor
106
- requirement: &2152553360 !ruby/object:Gem::Requirement
106
+ requirement: &2152899660 !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: *2152553360
114
+ version_requirements: *2152899660
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: builder
117
- requirement: &2152548680 !ruby/object:Gem::Requirement
117
+ requirement: &2152898420 !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: *2152548680
125
+ version_requirements: *2152898420
126
126
  description: A fast Gherkin lexer/parser based on the Ragel State Machine Compiler.
127
127
  email: cukes@googlegroups.com
128
128
  executables: []
@@ -220,6 +220,7 @@ files:
220
220
  - spec/gherkin/fixtures/with_bom.feature
221
221
  - spec/gherkin/formatter/ansi_escapes_spec.rb
222
222
  - spec/gherkin/formatter/filter_formatter_spec.rb
223
+ - spec/gherkin/formatter/json_formatter_spec.rb
223
224
  - spec/gherkin/formatter/model_spec.rb
224
225
  - spec/gherkin/formatter/pretty_formatter_spec.rb
225
226
  - spec/gherkin/formatter/spaces.feature
@@ -290,7 +291,7 @@ rubyforge_project:
290
291
  rubygems_version: 1.8.10
291
292
  signing_key:
292
293
  specification_version: 3
293
- summary: gherkin-2.4.21
294
+ summary: gherkin-2.5.0
294
295
  test_files:
295
296
  - features/escaped_pipes.feature
296
297
  - features/feature_parser.feature
@@ -326,6 +327,7 @@ test_files:
326
327
  - spec/gherkin/fixtures/with_bom.feature
327
328
  - spec/gherkin/formatter/ansi_escapes_spec.rb
328
329
  - spec/gherkin/formatter/filter_formatter_spec.rb
330
+ - spec/gherkin/formatter/json_formatter_spec.rb
329
331
  - spec/gherkin/formatter/model_spec.rb
330
332
  - spec/gherkin/formatter/pretty_formatter_spec.rb
331
333
  - spec/gherkin/formatter/spaces.feature