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

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,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