gherkin 2.3.3-x86-mswin32 → 2.3.4-x86-mswin32

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,9 @@
1
+ == 2.3.4 (2011-03-10)
2
+
3
+ === Changes
4
+ * Fixing C90 errors on Ubuntu Natty (#92 Colin Dean)
5
+ * Romanian (ro) language update, extracted from a real-world project. (Iulian Dogariu)
6
+
1
7
  == 2.3.3 (2010-12-26)
2
8
 
3
9
  === Changes
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.3.3
1
+ 2.3.4
@@ -51,9 +51,9 @@ Gem::Specification.new do |s|
51
51
  s.add_dependency('json', '~> 1.4.6')
52
52
 
53
53
  s.add_development_dependency('rake', '~> 0.8.7')
54
- s.add_development_dependency('bundler', '~> 1.0.7')
55
- s.add_development_dependency('rspec', '~> 2.3.0')
56
- s.add_development_dependency('awesome_print', '~> 0.2.1')
54
+ s.add_development_dependency('bundler', '~> 1.0.10')
55
+ s.add_development_dependency('rspec', '~> 2.5.0')
56
+ s.add_development_dependency('awesome_print', '~> 0.3.2')
57
57
  s.add_development_dependency('cucumber', '~> 0.10.0')
58
58
  # Only needed by Cucumber. Remove when Cucumber no longer needs those.
59
59
  s.add_development_dependency('term-ansicolor', '~> 1.0.5')
@@ -19,6 +19,9 @@ module Gherkin
19
19
  @step_printer = StepPrinter.new
20
20
  @monochrome = monochrome
21
21
  @executing = executing
22
+ @background = nil
23
+ @tag_statement = nil
24
+ @steps = []
22
25
  end
23
26
 
24
27
  def uri(uri)
@@ -32,26 +35,47 @@ module Gherkin
32
35
  print_description(feature.description, ' ', false)
33
36
  end
34
37
 
35
- def background(statement)
36
- @io.puts
37
- print_comments(statement.comments, ' ')
38
- @io.puts " #{statement.keyword}: #{statement.name}#{indented_element_uri!(statement.keyword, statement.name, statement.line)}"
39
- print_description(statement.description, ' ')
38
+ def background(background)
39
+ replay
40
+ @statement = background
40
41
  end
41
42
 
42
- def scenario(statement)
43
- @io.puts
44
- print_comments(statement.comments, ' ')
45
- print_tags(statement.tags, ' ')
46
- @io.puts " #{statement.keyword}: #{statement.name}#{indented_element_uri!(statement.keyword, statement.name, statement.line)}"
47
- print_description(statement.description, ' ')
43
+ def scenario(scenario)
44
+ replay
45
+ @statement = scenario
48
46
  end
49
47
 
50
48
  def scenario_outline(scenario_outline)
51
- scenario(scenario_outline)
49
+ replay
50
+ @statement = scenario_outline
51
+ end
52
+
53
+ def replay
54
+ print_statement
55
+ print_steps
56
+ end
57
+
58
+ def print_statement
59
+ return if @statement.nil?
60
+ calculate_location_indentations
61
+ @io.puts
62
+ print_comments(@statement.comments, ' ')
63
+ print_tags(@statement.tags, ' ') if @statement.respond_to?(:tags) # Background doesn't
64
+ @io.write " #{@statement.keyword}: #{@statement.name}"
65
+ location = @executing ? "#{@uri}:#{@statement.line}" : nil
66
+ @io.puts indented_location(location, true)
67
+ print_description(@statement.description, ' ')
68
+ @statement = nil
69
+ end
70
+
71
+ def print_steps
72
+ while(@steps.any?)
73
+ print_step('skipped', [], nil, true)
74
+ end
52
75
  end
53
76
 
54
77
  def examples(examples)
78
+ replay
55
79
  @io.puts
56
80
  print_comments(examples.comments, ' ')
57
81
  print_tags(examples.tags, ' ')
@@ -61,42 +85,36 @@ module Gherkin
61
85
  end
62
86
 
63
87
  def step(step)
64
- @step = step
65
- @step_index += 1 if @step_index
66
- # TODO: It feels a little funny to have this logic here in the formatter.
67
- # We may have to duplicate it across formatters. So maybe we should move
68
- # this out to the callers instead.
69
- #
70
- # Maybe it's a Filter!! ExecuteFilter and PrettyFilter
71
- match(Model::Match.new([], nil)) unless @executing
88
+ @steps << step
72
89
  end
73
90
 
74
91
  def match(match)
75
92
  @match = match
76
- print_step('executing', @match.arguments, @match.location)
93
+ print_statement
94
+ print_step('executing', @match.arguments, @match.location, false)
77
95
  end
78
96
 
79
97
  def result(result)
80
98
  @io.write(up(1))
81
- print_step(result.status, @match.arguments, @match.location)
99
+ print_step(result.status, @match.arguments, @match.location, true)
82
100
  end
83
101
 
84
- def print_step(status, arguments, location)
102
+ def print_step(status, arguments, location, proceed)
103
+ step = proceed ? @steps.shift : @steps[0]
104
+
85
105
  text_format = format(status)
86
106
  arg_format = arg_format(status)
87
107
 
88
- print_comments(@step.comments, ' ')
108
+ print_comments(step.comments, ' ')
89
109
  @io.write(' ')
90
- @io.write(text_format.text(@step.keyword))
91
- @step_printer.write_step(@io, text_format, arg_format, @step.name, arguments)
92
- print_indented_step_location(location) if location
93
-
94
- @io.puts
95
- case @step.multiline_arg
110
+ @io.write(text_format.text(step.keyword))
111
+ @step_printer.write_step(@io, text_format, arg_format, step.name, arguments)
112
+ @io.puts(indented_location(location, proceed))
113
+ case step.multiline_arg
96
114
  when Model::PyString
97
- py_string(@step.multiline_arg)
115
+ py_string(step.multiline_arg)
98
116
  when Array
99
- table(@step.multiline_arg)
117
+ table(step.multiline_arg)
100
118
  end
101
119
  end
102
120
 
@@ -136,16 +154,10 @@ module Gherkin
136
154
  end
137
155
 
138
156
  def eof
157
+ replay
139
158
  # NO-OP
140
159
  end
141
160
 
142
- # This method can be invoked before a #scenario, to ensure location arguments are aligned
143
- def steps(steps)
144
- @step_lengths = steps.map {|step| (step.keyword+step.name).unpack("U*").length}
145
- @max_step_length = @step_lengths.max
146
- @step_index = -1
147
- end
148
-
149
161
  def table(rows)
150
162
  cell_lengths = rows.map do |row|
151
163
  row.cells.map do |cell|
@@ -216,18 +228,15 @@ module Gherkin
216
228
  end
217
229
  end
218
230
 
219
- def indented_element_uri!(keyword, name, line)
220
- return '' if @max_step_length.nil?
221
- l = (keyword+name).unpack("U*").length
222
- @max_step_length = [@max_step_length, l].max
223
- indent = @max_step_length - l
224
- ' ' * indent + ' ' + comments + "# #{@uri}:#{line}" + reset
231
+ def indented_location(location, proceed)
232
+ indentation = proceed ? @indentations.shift : @indentations[0]
233
+ location ? (' ' * indentation + ' ' + comments + "# #{location}" + reset) : ''
225
234
  end
226
235
 
227
- def print_indented_step_location(location)
228
- indent = @max_step_length - @step_lengths[@step_index]
229
- return if location.nil?
230
- @io.write(' ' * indent + ' ' + comments + "# #{location}" + reset)
236
+ def calculate_location_indentations
237
+ line_widths = ([@statement] + @steps).map {|step| (step.keyword+step.name).unpack("U*").length}
238
+ max_line_width = line_widths.max
239
+ @indentations = line_widths.map{|w| max_line_width - w}
231
240
  end
232
241
  end
233
242
  end
@@ -433,28 +433,15 @@
433
433
  "ro":
434
434
  name: Romanian
435
435
  native: română
436
- background: Conditii
437
- feature: Functionalitate
436
+ background: Context
437
+ feature: Functionalitate|Funcționalitate|Funcţionalitate
438
438
  scenario: Scenariu
439
- scenario_outline: Scenariul de sablon
440
- examples: Exemplele
441
- given: "*|Daca"
442
- when: "*|Cand"
439
+ scenario_outline: Structura scenariu|Structură scenariu
440
+ examples: Exemple
441
+ given: "*|Date fiind|Dat fiind|Dati fiind|Dați fiind|Daţi fiind"
442
+ when: "*|Cand|Când"
443
443
  then: "*|Atunci"
444
- and: "*|Si"
445
- but: "*|Dar"
446
- "ro-RO":
447
- name: Romanian (diacritical)
448
- native: română (diacritical)
449
- background: Condiţii
450
- feature: Funcționalitate
451
- scenario: Scenariu
452
- scenario_outline: Scenariul de şablon
453
- examples: Exemplele
454
- given: "*|Dacă"
455
- when: "*|Când"
456
- then: "*|Atunci"
457
- and: "*|Și"
444
+ and: "*|Si|Și|Şi"
458
445
  but: "*|Dar"
459
446
  "ru":
460
447
  name: Russian
@@ -175,11 +175,12 @@ static VALUE rb_eGherkinLexingError;
175
175
  }
176
176
 
177
177
  action store_cell_content {
178
+ VALUE re_pipe, re_newline, re_backslash;
178
179
  VALUE con = ENCODED_STR_NEW(PTR_TO(content_start), LEN(content_start, p));
179
180
  rb_funcall(con, rb_intern("strip!"), 0);
180
- VALUE re_pipe = rb_reg_regcomp(rb_str_new2("\\\\\\|"));
181
- VALUE re_newline = rb_reg_regcomp(rb_str_new2("\\\\n"));
182
- VALUE re_backslash = rb_reg_regcomp(rb_str_new2("\\\\\\\\"));
181
+ re_pipe = rb_reg_regcomp(rb_str_new2("\\\\\\|"));
182
+ re_newline = rb_reg_regcomp(rb_str_new2("\\\\n"));
183
+ re_backslash = rb_reg_regcomp(rb_str_new2("\\\\\\\\"));
183
184
  rb_funcall(con, rb_intern("gsub!"), 2, re_pipe, rb_str_new2("|"));
184
185
  rb_funcall(con, rb_intern("gsub!"), 2, re_newline, rb_str_new2("\n"));
185
186
  rb_funcall(con, rb_intern("gsub!"), 2, re_backslash, rb_str_new2("\\"));
@@ -192,6 +193,7 @@ static VALUE rb_eGherkinLexingError;
192
193
  }
193
194
 
194
195
  action end_feature {
196
+ int line;
195
197
  if (cs < lexer_first_final) {
196
198
  if (raise_lexer_error != NULL) {
197
199
  size_t count = 0;
@@ -212,6 +214,7 @@ static VALUE rb_eGherkinLexingError;
212
214
  newstr_val = rb_str_new(buff, len);
213
215
  newstr = RSTRING_PTR(newstr_val);
214
216
 
217
+
215
218
  for (count = 0; count < len; count++) {
216
219
  if(buff[count] == 10) {
217
220
  newstr[newstr_count] = '\0'; // terminate new string at first newline found
@@ -227,7 +230,7 @@ static VALUE rb_eGherkinLexingError;
227
230
  newstr_count++;
228
231
  }
229
232
 
230
- int line = lexer->line_number;
233
+ line = lexer->line_number;
231
234
  lexer_init(lexer); // Re-initialize so we can scan again with the same lexer
232
235
  raise_lexer_error(newstr, line);
233
236
  }
@@ -246,10 +249,11 @@ static VALUE rb_eGherkinLexingError;
246
249
  static VALUE
247
250
  unindent(VALUE con, int start_col)
248
251
  {
252
+ VALUE re;
249
253
  // Gherkin will crash gracefully if the string representation of start_col pushes the pattern past 32 characters
250
254
  char pat[32];
251
255
  snprintf(pat, 32, "^[\t ]{0,%d}", start_col);
252
- VALUE re = rb_reg_regcomp(rb_str_new2(pat));
256
+ re = rb_reg_regcomp(rb_str_new2(pat));
253
257
  rb_funcall(con, rb_intern("gsub!"), 2, re, rb_str_new2(""));
254
258
 
255
259
  return Qnil;
@@ -275,6 +279,7 @@ store_multiline_kw_con(VALUE listener, const char * event_name,
275
279
  const char * at, size_t length,
276
280
  int current_line, int start_col)
277
281
  {
282
+ VALUE split;
278
283
  VALUE con = Qnil, kw = Qnil, name = Qnil, desc = Qnil;
279
284
 
280
285
  kw = ENCODED_STR_NEW(keyword_at, keyword_length);
@@ -282,7 +287,7 @@ store_multiline_kw_con(VALUE listener, const char * event_name,
282
287
 
283
288
  unindent(con, start_col);
284
289
 
285
- VALUE split = rb_str_split(con, "\n");
290
+ split = rb_str_split(con, "\n");
286
291
 
287
292
  name = rb_funcall(split, rb_intern("shift"), 0);
288
293
  desc = rb_ary_join(split, rb_str_new2( "\n" ));
@@ -315,12 +320,14 @@ store_pystring_content(VALUE listener,
315
320
  const char *at, size_t length,
316
321
  int current_line)
317
322
  {
323
+ VALUE re2;
324
+ VALUE unescape_escaped_quotes;
318
325
  VALUE con = ENCODED_STR_NEW(at, length);
319
326
 
320
327
  unindent(con, start_col);
321
328
 
322
- VALUE re2 = rb_reg_regcomp(rb_str_new2("\r\\Z"));
323
- VALUE unescape_escaped_quotes = rb_reg_regcomp(rb_str_new2("\\\\\"\\\\\"\\\\\""));
329
+ re2 = rb_reg_regcomp(rb_str_new2("\r\\Z"));
330
+ unescape_escaped_quotes = rb_reg_regcomp(rb_str_new2("\\\\\"\\\\\"\\\\\""));
324
331
  rb_funcall(con, rb_intern("sub!"), 2, re2, rb_str_new2(""));
325
332
  rb_funcall(con, rb_intern("gsub!"), 2, unescape_escaped_quotes, rb_str_new2("\"\"\""));
326
333
  rb_funcall(listener, rb_intern("py_string"), 2, con, INT2FIX(current_line));
@@ -359,9 +366,10 @@ static VALUE CLexer_alloc(VALUE klass)
359
366
 
360
367
  static VALUE CLexer_init(VALUE self, VALUE listener)
361
368
  {
369
+ lexer_state *lxr;
362
370
  rb_iv_set(self, "@listener", listener);
363
371
 
364
- lexer_state *lxr = NULL;
372
+ lxr = NULL;
365
373
  DATA_GET(self, lexer_state, lxr);
366
374
  lexer_init(lxr);
367
375
 
@@ -370,16 +378,20 @@ static VALUE CLexer_init(VALUE self, VALUE listener)
370
378
 
371
379
  static VALUE CLexer_scan(VALUE self, VALUE input)
372
380
  {
381
+ VALUE input_copy;
382
+ char *data;
383
+ size_t len;
373
384
  VALUE listener = rb_iv_get(self, "@listener");
374
385
 
375
- lexer_state *lexer = NULL;
386
+ lexer_state *lexer;
387
+ lexer = NULL;
376
388
  DATA_GET(self, lexer_state, lexer);
377
389
 
378
- VALUE input_copy = rb_str_dup(input);
390
+ input_copy = rb_str_dup(input);
379
391
 
380
392
  rb_str_append(input_copy, rb_str_new2("\n%_FEATURE_END_%"));
381
- char *data = RSTRING_PTR(input_copy);
382
- size_t len = RSTRING_LEN(input_copy);
393
+ data = RSTRING_PTR(input_copy);
394
+ len = RSTRING_LEN(input_copy);
383
395
 
384
396
  if (len == 0) {
385
397
  rb_raise(rb_eGherkinLexingError, "No content to lex.");
@@ -38,24 +38,15 @@ module Gherkin
38
38
  @f.uri("features/foo.feature")
39
39
  @f.feature(Model::Feature.new([], [], "Feature", "Hello", "World", 1))
40
40
 
41
- step1 = Model::Step.new([], "Given ", "some stuff", 5)
42
- match1 = Model::Match.new([], "features/step_definitions/bar.rb:56")
43
- result1 = Model::Result.new('passed', 22, nil)
44
-
45
- step2 = Model::Step.new([], "When ", "foo", 6)
46
- match2 = Model::Match.new([], "features/step_definitions/bar.rb:96")
47
- result2 = Model::Result.new('passed', 33, nil)
48
-
49
- @f.steps([step1, step2])
50
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))
51
44
 
52
- @f.step(step1)
53
- @f.match(match1)
54
- @f.result(result1)
45
+ @f.match(Model::Match.new([], "features/step_definitions/bar.rb:56"))
46
+ @f.result(Model::Result.new('passed', 22, nil))
55
47
 
56
- @f.step(step2)
57
- @f.match(match2)
58
- @f.result(result2)
48
+ @f.match(Model::Match.new([], "features/step_definitions/bar.rb:96"))
49
+ @f.result(Model::Result.new('passed', 33, nil))
59
50
 
60
51
  assert_io(%{Feature: Hello
61
52
  World
@@ -75,7 +66,6 @@ module Gherkin
75
66
  match = Model::Match.new([], "features/step_definitions/bar.rb:56")
76
67
  result = Model::Result.new('passed', 0, nil)
77
68
 
78
- @f.steps([step])
79
69
  @f.scenario(Model::Scenario.new([], [], "Scenario", "The scenario", "", 4))
80
70
  @f.step(step)
81
71
  @f.match(match)
@@ -91,16 +81,15 @@ module Gherkin
91
81
  end
92
82
 
93
83
  it "should highlight arguments for regular steps" do
94
- step = Model::Step.new([], "Given ", "I have 999 cukes in my belly", 3)
95
- match = Model::Match.new([Gherkin::Formatter::Argument.new(7, '999')], nil)
96
- result = Model::Result.new('passed', 6, nil)
97
-
98
- @f.steps([step])
99
- @f.step(step)
100
- @f.match(match)
101
- @f.result(result)
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))
87
+ @f.match(Model::Match.new([Gherkin::Formatter::Argument.new(7, '999')], nil))
88
+ @f.result(Model::Result.new('passed', 6, nil))
102
89
 
103
90
  assert_io(
91
+ "\n" +
92
+ " Scenario: Lots of cukes \e[90m# foo.feature:3\e[0m\n" +
104
93
  " #{executing}Given #{reset}#{executing}I have #{reset}#{executing_arg}999#{reset}#{executing} cukes in my belly#{reset}\n" +
105
94
  "#{up(1)} #{passed}Given #{reset}#{passed}I have #{reset}#{passed_arg}999#{reset}#{passed} cukes in my belly#{reset}\n"
106
95
  )
@@ -79,51 +79,50 @@ module Gherkin
79
79
  unless defined?(JRUBY_VERSION)
80
80
  it "should print available languages" do
81
81
  ("\n" + Gherkin::I18n.language_table).should == %{
82
- | ar | Arabic | العربية |
83
- | bg | Bulgarian | български |
84
- | ca | Catalan | català |
85
- | cs | Czech | Česky |
86
- | cy-GB | Welsh | Cymraeg |
87
- | da | Danish | dansk |
88
- | de | German | Deutsch |
89
- | en | English | English |
90
- | en-Scouse | Scouse | Scouse |
91
- | en-au | Australian | Australian |
92
- | en-lol | LOLCAT | LOLCAT |
93
- | en-pirate | Pirate | Pirate |
94
- | en-tx | Texan | Texan |
95
- | eo | Esperanto | Esperanto |
96
- | es | Spanish | español |
97
- | et | Estonian | eesti keel |
98
- | fi | Finnish | suomi |
99
- | fr | French | français |
100
- | he | Hebrew | עברית |
101
- | hr | Croatian | hrvatski |
102
- | hu | Hungarian | magyar |
103
- | id | Indonesian | Bahasa Indonesia |
104
- | it | Italian | italiano |
105
- | ja | Japanese | 日本語 |
106
- | ko | Korean | 한국어 |
107
- | lt | Lithuanian | lietuvių kalba |
108
- | lu | Luxemburgish | Lëtzebuergesch |
109
- | lv | Latvian | latviešu |
110
- | nl | Dutch | Nederlands |
111
- | no | Norwegian | norsk |
112
- | pl | Polish | polski |
113
- | pt | Portuguese | português |
114
- | ro | Romanian | română |
115
- | ro-RO | Romanian (diacritical) | română (diacritical) |
116
- | ru | Russian | русский |
117
- | sk | Slovak | Slovensky |
118
- | sr-Cyrl | Serbian | Српски |
119
- | sr-Latn | Serbian (Latin) | Srpski (Latinica) |
120
- | sv | Swedish | Svenska |
121
- | tr | Turkish | Türkçe |
122
- | uk | Ukrainian | Українська |
123
- | uz | Uzbek | Узбекча |
124
- | vi | Vietnamese | Tiếng Việt |
125
- | zh-CN | Chinese simplified | 简体中文 |
126
- | zh-TW | Chinese traditional | 繁體中文 |
82
+ | ar | Arabic | العربية |
83
+ | bg | Bulgarian | български |
84
+ | ca | Catalan | català |
85
+ | cs | Czech | Česky |
86
+ | cy-GB | Welsh | Cymraeg |
87
+ | da | Danish | dansk |
88
+ | de | German | Deutsch |
89
+ | en | English | English |
90
+ | en-Scouse | Scouse | Scouse |
91
+ | en-au | Australian | Australian |
92
+ | en-lol | LOLCAT | LOLCAT |
93
+ | en-pirate | Pirate | Pirate |
94
+ | en-tx | Texan | Texan |
95
+ | eo | Esperanto | Esperanto |
96
+ | es | Spanish | español |
97
+ | et | Estonian | eesti keel |
98
+ | fi | Finnish | suomi |
99
+ | fr | French | français |
100
+ | he | Hebrew | עברית |
101
+ | hr | Croatian | hrvatski |
102
+ | hu | Hungarian | magyar |
103
+ | id | Indonesian | Bahasa Indonesia |
104
+ | it | Italian | italiano |
105
+ | ja | Japanese | 日本語 |
106
+ | ko | Korean | 한국어 |
107
+ | lt | Lithuanian | lietuvių kalba |
108
+ | lu | Luxemburgish | Lëtzebuergesch |
109
+ | lv | Latvian | latviešu |
110
+ | nl | Dutch | Nederlands |
111
+ | no | Norwegian | norsk |
112
+ | pl | Polish | polski |
113
+ | pt | Portuguese | português |
114
+ | ro | Romanian | română |
115
+ | ru | Russian | русский |
116
+ | sk | Slovak | Slovensky |
117
+ | sr-Cyrl | Serbian | Српски |
118
+ | sr-Latn | Serbian (Latin) | Srpski (Latinica) |
119
+ | sv | Swedish | Svenska |
120
+ | tr | Turkish | Türkçe |
121
+ | uk | Ukrainian | Українська |
122
+ | uz | Uzbek | Узбекча |
123
+ | vi | Vietnamese | Tiếng Việt |
124
+ | zh-CN | Chinese simplified | 简体中文 |
125
+ | zh-TW | Chinese traditional | 繁體中文 |
127
126
  }
128
127
  end
129
128
  end
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gherkin
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 2
7
- - 3
8
- - 3
9
- version: 2.3.3
4
+ prerelease:
5
+ version: 2.3.4
10
6
  platform: x86-mswin32
11
7
  authors:
12
8
  - Mike Sassak
@@ -16,7 +12,7 @@ autorequire:
16
12
  bindir: bin
17
13
  cert_chain: []
18
14
 
19
- date: 2010-12-26 00:00:00 -06:00
15
+ date: 2011-03-10 00:00:00 +00:00
20
16
  default_executable: gherkin
21
17
  dependencies:
22
18
  - !ruby/object:Gem::Dependency
@@ -27,10 +23,6 @@ dependencies:
27
23
  requirements:
28
24
  - - ~>
29
25
  - !ruby/object:Gem::Version
30
- segments:
31
- - 1
32
- - 4
33
- - 6
34
26
  version: 1.4.6
35
27
  type: :runtime
36
28
  version_requirements: *id001
@@ -42,10 +34,6 @@ dependencies:
42
34
  requirements:
43
35
  - - ~>
44
36
  - !ruby/object:Gem::Version
45
- segments:
46
- - 0
47
- - 8
48
- - 7
49
37
  version: 0.8.7
50
38
  type: :development
51
39
  version_requirements: *id002
@@ -57,11 +45,7 @@ dependencies:
57
45
  requirements:
58
46
  - - ~>
59
47
  - !ruby/object:Gem::Version
60
- segments:
61
- - 1
62
- - 0
63
- - 7
64
- version: 1.0.7
48
+ version: 1.0.10
65
49
  type: :development
66
50
  version_requirements: *id003
67
51
  - !ruby/object:Gem::Dependency
@@ -72,11 +56,7 @@ dependencies:
72
56
  requirements:
73
57
  - - ~>
74
58
  - !ruby/object:Gem::Version
75
- segments:
76
- - 2
77
- - 3
78
- - 0
79
- version: 2.3.0
59
+ version: 2.5.0
80
60
  type: :development
81
61
  version_requirements: *id004
82
62
  - !ruby/object:Gem::Dependency
@@ -87,11 +67,7 @@ dependencies:
87
67
  requirements:
88
68
  - - ~>
89
69
  - !ruby/object:Gem::Version
90
- segments:
91
- - 0
92
- - 2
93
- - 1
94
- version: 0.2.1
70
+ version: 0.3.2
95
71
  type: :development
96
72
  version_requirements: *id005
97
73
  - !ruby/object:Gem::Dependency
@@ -102,10 +78,6 @@ dependencies:
102
78
  requirements:
103
79
  - - ~>
104
80
  - !ruby/object:Gem::Version
105
- segments:
106
- - 0
107
- - 10
108
- - 0
109
81
  version: 0.10.0
110
82
  type: :development
111
83
  version_requirements: *id006
@@ -117,10 +89,6 @@ dependencies:
117
89
  requirements:
118
90
  - - ~>
119
91
  - !ruby/object:Gem::Version
120
- segments:
121
- - 1
122
- - 0
123
- - 5
124
92
  version: 1.0.5
125
93
  type: :development
126
94
  version_requirements: *id007
@@ -132,10 +100,6 @@ dependencies:
132
100
  requirements:
133
101
  - - ~>
134
102
  - !ruby/object:Gem::Version
135
- segments:
136
- - 3
137
- - 0
138
- - 0
139
103
  version: 3.0.0
140
104
  type: :development
141
105
  version_requirements: *id008
@@ -308,7 +272,6 @@ files:
308
272
  - lib/1.8/gherkin_lexer_pl.so
309
273
  - lib/1.8/gherkin_lexer_pt.so
310
274
  - lib/1.8/gherkin_lexer_ro.so
311
- - lib/1.8/gherkin_lexer_ro_ro.so
312
275
  - lib/1.8/gherkin_lexer_ru.so
313
276
  - lib/1.8/gherkin_lexer_sk.so
314
277
  - lib/1.8/gherkin_lexer_sr_cyrl.so
@@ -353,7 +316,6 @@ files:
353
316
  - lib/1.9/gherkin_lexer_pl.so
354
317
  - lib/1.9/gherkin_lexer_pt.so
355
318
  - lib/1.9/gherkin_lexer_ro.so
356
- - lib/1.9/gherkin_lexer_ro_ro.so
357
319
  - lib/1.9/gherkin_lexer_ru.so
358
320
  - lib/1.9/gherkin_lexer_sk.so
359
321
  - lib/1.9/gherkin_lexer_sr_cyrl.so
@@ -379,24 +341,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
379
341
  requirements:
380
342
  - - ">="
381
343
  - !ruby/object:Gem::Version
382
- segments:
383
- - 0
384
344
  version: "0"
385
345
  required_rubygems_version: !ruby/object:Gem::Requirement
386
346
  none: false
387
347
  requirements:
388
348
  - - ">="
389
349
  - !ruby/object:Gem::Version
390
- segments:
391
- - 0
392
350
  version: "0"
393
351
  requirements: []
394
352
 
395
353
  rubyforge_project:
396
- rubygems_version: 1.3.7
354
+ rubygems_version: 1.6.2
397
355
  signing_key:
398
356
  specification_version: 3
399
- summary: gherkin-2.3.3
357
+ summary: gherkin-2.3.4
400
358
  test_files:
401
359
  - features/escaped_pipes.feature
402
360
  - features/feature_parser.feature