aslakhellesoy-cucumber 0.0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. data/License.txt +1 -1
  2. data/Manifest.txt +38 -24
  3. data/README.textile +31 -0
  4. data/TODO.txt +30 -0
  5. data/config/hoe.rb +6 -7
  6. data/examples/java/README.textile +52 -0
  7. data/examples/java/Rakefile +12 -0
  8. data/examples/java/features/hello.feature +11 -0
  9. data/examples/java/features/steps/hello_steps.rb +25 -0
  10. data/examples/java/features/steps/tree_steps.rb +14 -0
  11. data/examples/java/features/tree.feature +9 -0
  12. data/examples/java/src/cucumber/demo/Hello.java +15 -0
  13. data/examples/pure_ruby/Rakefile +6 -0
  14. data/examples/pure_ruby/features/addition.rb +23 -0
  15. data/examples/pure_ruby/{steps → features/steps}/addition_steps.rb +0 -0
  16. data/examples/simple_norwegian/Rakefile +6 -0
  17. data/examples/simple_norwegian/{steg → features/steps}/matte_steg.rb.rb +0 -0
  18. data/examples/simple_norwegian/{summering.story → features/summering.feature} +4 -1
  19. data/examples/web/Rakefile +6 -0
  20. data/examples/web/features/search.feature +9 -0
  21. data/examples/web/features/steps/stories_steps.rb +51 -0
  22. data/gem_tasks/treetop.rake +8 -14
  23. data/lib/cucumber.rb +10 -3
  24. data/lib/cucumber/cli.rb +29 -19
  25. data/lib/cucumber/core_ext/proc.rb +13 -5
  26. data/lib/cucumber/executor.rb +8 -10
  27. data/lib/cucumber/formatters/ansicolor.rb +2 -2
  28. data/lib/cucumber/formatters/html_formatter.rb +6 -6
  29. data/lib/cucumber/formatters/pretty_formatter.rb +68 -15
  30. data/lib/cucumber/{parser/languages.yml → languages.yml} +0 -4
  31. data/lib/cucumber/rake/task.rb +24 -26
  32. data/lib/cucumber/step_mother.rb +3 -3
  33. data/lib/cucumber/tree.rb +8 -117
  34. data/lib/cucumber/tree/feature.rb +45 -0
  35. data/lib/cucumber/tree/features.rb +21 -0
  36. data/lib/cucumber/tree/scenario.rb +79 -0
  37. data/lib/cucumber/tree/step.rb +133 -0
  38. data/lib/cucumber/tree/table.rb +26 -0
  39. data/lib/cucumber/{parser → tree}/top_down_visitor.rb +5 -8
  40. data/lib/cucumber/treetop_parser/feature.treetop.erb +98 -0
  41. data/lib/cucumber/treetop_parser/feature_en.rb +923 -0
  42. data/lib/cucumber/treetop_parser/feature_fr.rb +923 -0
  43. data/lib/cucumber/treetop_parser/feature_no.rb +923 -0
  44. data/lib/cucumber/treetop_parser/feature_parser.rb +32 -0
  45. data/lib/cucumber/treetop_parser/feature_pt.rb +923 -0
  46. data/lib/cucumber/version.rb +2 -2
  47. data/script/console +1 -1
  48. data/spec/cucumber/executor_spec.rb +9 -9
  49. data/spec/cucumber/formatters/{stories.html → features.html} +9 -9
  50. data/spec/cucumber/formatters/html_formatter_spec.rb +11 -11
  51. data/spec/cucumber/{sell_cucumbers.story → sell_cucumbers.feature} +1 -1
  52. data/spec/spec_helper.rb +8 -1
  53. metadata +61 -30
  54. data/README.txt +0 -78
  55. data/examples/Rakefile +0 -7
  56. data/examples/pure_ruby/addition.rb +0 -16
  57. data/examples/simple/addition.story +0 -12
  58. data/examples/simple/division.story +0 -17
  59. data/examples/simple/steps/addition_steps.rb +0 -43
  60. data/examples/web/run_stories.story +0 -10
  61. data/examples/web/steps/stories_steps.rb +0 -39
  62. data/lib/cucumber/parser/nodes.rb +0 -88
  63. data/lib/cucumber/parser/story_parser.rb +0 -13
  64. data/lib/cucumber/parser/story_parser.treetop.erb +0 -41
  65. data/lib/cucumber/parser/story_parser_en.rb +0 -554
  66. data/lib/cucumber/parser/story_parser_fr.rb +0 -554
  67. data/lib/cucumber/parser/story_parser_no.rb +0 -554
  68. data/lib/cucumber/parser/story_parser_pt.rb +0 -554
  69. data/lib/cucumber/ruby_tree.rb +0 -14
  70. data/lib/cucumber/ruby_tree/nodes.rb +0 -68
@@ -1,554 +0,0 @@
1
- module Cucumber
2
- module Parser
3
- module Story
4
- include Treetop::Runtime
5
-
6
- def root
7
- @root || :story
8
- end
9
-
10
- module Story0
11
- def header_node
12
- elements[0]
13
- end
14
-
15
- def narrative_node
16
- elements[1]
17
- end
18
-
19
- def scenario_nodes
20
- elements[2]
21
- end
22
- end
23
-
24
- def _nt_story
25
- start_index = index
26
- if node_cache[:story].has_key?(index)
27
- cached = node_cache[:story][index]
28
- @index = cached.interval.end if cached
29
- return cached
30
- end
31
-
32
- i0, s0 = index, []
33
- r1 = _nt_header_node
34
- s0 << r1
35
- if r1
36
- r2 = _nt_narrative_node
37
- s0 << r2
38
- if r2
39
- s3, i3 = [], index
40
- loop do
41
- r4 = _nt_scenario
42
- if r4
43
- s3 << r4
44
- else
45
- break
46
- end
47
- end
48
- r3 = SyntaxNode.new(input, i3...index, s3)
49
- s0 << r3
50
- end
51
- end
52
- if s0.last
53
- r0 = (Cucumber::Parser::StoryNode).new(input, i0...index, s0)
54
- r0.extend(Story0)
55
- else
56
- self.index = i0
57
- r0 = nil
58
- end
59
-
60
- node_cache[:story][start_index] = r0
61
-
62
- return r0
63
- end
64
-
65
- module HeaderNode0
66
- def space
67
- elements[1]
68
- end
69
-
70
- def sentence_line
71
- elements[2]
72
- end
73
- end
74
-
75
- def _nt_header_node
76
- start_index = index
77
- if node_cache[:header_node].has_key?(index)
78
- cached = node_cache[:header_node][index]
79
- @index = cached.interval.end if cached
80
- return cached
81
- end
82
-
83
- i0, s0 = index, []
84
- if input.index('Histoire:', index) == index
85
- r1 = (SyntaxNode).new(input, index...(index + 9))
86
- @index += 9
87
- else
88
- terminal_parse_failure('Histoire:')
89
- r1 = nil
90
- end
91
- s0 << r1
92
- if r1
93
- r2 = _nt_space
94
- s0 << r2
95
- if r2
96
- r3 = _nt_sentence_line
97
- s0 << r3
98
- end
99
- end
100
- if s0.last
101
- r0 = (Cucumber::Parser::HeaderNode).new(input, i0...index, s0)
102
- r0.extend(HeaderNode0)
103
- else
104
- self.index = i0
105
- r0 = nil
106
- end
107
-
108
- node_cache[:header_node][start_index] = r0
109
-
110
- return r0
111
- end
112
-
113
- module NarrativeNode0
114
- end
115
-
116
- def _nt_narrative_node
117
- start_index = index
118
- if node_cache[:narrative_node].has_key?(index)
119
- cached = node_cache[:narrative_node][index]
120
- @index = cached.interval.end if cached
121
- return cached
122
- end
123
-
124
- s0, i0 = [], index
125
- loop do
126
- i1, s1 = index, []
127
- i2 = index
128
- r3 = _nt_scenario_start
129
- if r3
130
- r2 = nil
131
- else
132
- self.index = i2
133
- r2 = SyntaxNode.new(input, index...index)
134
- end
135
- s1 << r2
136
- if r2
137
- if index < input_length
138
- r4 = (SyntaxNode).new(input, index...(index + 1))
139
- @index += 1
140
- else
141
- terminal_parse_failure("any character")
142
- r4 = nil
143
- end
144
- s1 << r4
145
- end
146
- if s1.last
147
- r1 = (SyntaxNode).new(input, i1...index, s1)
148
- r1.extend(NarrativeNode0)
149
- else
150
- self.index = i1
151
- r1 = nil
152
- end
153
- if r1
154
- s0 << r1
155
- else
156
- break
157
- end
158
- end
159
- r0 = Cucumber::Parser::NarrativeNode.new(input, i0...index, s0)
160
-
161
- node_cache[:narrative_node][start_index] = r0
162
-
163
- return r0
164
- end
165
-
166
- module Scenario0
167
- def scenario_start
168
- elements[0]
169
- end
170
-
171
- def sentence
172
- elements[1]
173
- end
174
-
175
- def step_nodes
176
- elements[2]
177
- end
178
- end
179
-
180
- def _nt_scenario
181
- start_index = index
182
- if node_cache[:scenario].has_key?(index)
183
- cached = node_cache[:scenario][index]
184
- @index = cached.interval.end if cached
185
- return cached
186
- end
187
-
188
- i0, s0 = index, []
189
- r1 = _nt_scenario_start
190
- s0 << r1
191
- if r1
192
- r2 = _nt_sentence_line
193
- s0 << r2
194
- if r2
195
- s3, i3 = [], index
196
- loop do
197
- r4 = _nt_step
198
- if r4
199
- s3 << r4
200
- else
201
- break
202
- end
203
- end
204
- r3 = SyntaxNode.new(input, i3...index, s3)
205
- s0 << r3
206
- end
207
- end
208
- if s0.last
209
- r0 = (Cucumber::Parser::ScenarioNode).new(input, i0...index, s0)
210
- r0.extend(Scenario0)
211
- else
212
- self.index = i0
213
- r0 = nil
214
- end
215
-
216
- node_cache[:scenario][start_index] = r0
217
-
218
- return r0
219
- end
220
-
221
- module ScenarioStart0
222
- def space
223
- elements[0]
224
- end
225
-
226
- end
227
-
228
- def _nt_scenario_start
229
- start_index = index
230
- if node_cache[:scenario_start].has_key?(index)
231
- cached = node_cache[:scenario_start][index]
232
- @index = cached.interval.end if cached
233
- return cached
234
- end
235
-
236
- i0, s0 = index, []
237
- r1 = _nt_space
238
- s0 << r1
239
- if r1
240
- if input.index('Scenario: ', index) == index
241
- r2 = (SyntaxNode).new(input, index...(index + 10))
242
- @index += 10
243
- else
244
- terminal_parse_failure('Scenario: ')
245
- r2 = nil
246
- end
247
- s0 << r2
248
- end
249
- if s0.last
250
- r0 = (SyntaxNode).new(input, i0...index, s0)
251
- r0.extend(ScenarioStart0)
252
- else
253
- self.index = i0
254
- r0 = nil
255
- end
256
-
257
- node_cache[:scenario_start][start_index] = r0
258
-
259
- return r0
260
- end
261
-
262
- module Step0
263
- def space
264
- elements[0]
265
- end
266
-
267
- def step_type
268
- elements[1]
269
- end
270
-
271
- def space
272
- elements[2]
273
- end
274
-
275
- def sentence
276
- elements[3]
277
- end
278
- end
279
-
280
- def _nt_step
281
- start_index = index
282
- if node_cache[:step].has_key?(index)
283
- cached = node_cache[:step][index]
284
- @index = cached.interval.end if cached
285
- return cached
286
- end
287
-
288
- i0, s0 = index, []
289
- r1 = _nt_space
290
- s0 << r1
291
- if r1
292
- i2 = index
293
- if input.index('Soit', index) == index
294
- r3 = (SyntaxNode).new(input, index...(index + 4))
295
- @index += 4
296
- else
297
- terminal_parse_failure('Soit')
298
- r3 = nil
299
- end
300
- if r3
301
- r2 = r3
302
- else
303
- if input.index('Quand', index) == index
304
- r4 = (SyntaxNode).new(input, index...(index + 5))
305
- @index += 5
306
- else
307
- terminal_parse_failure('Quand')
308
- r4 = nil
309
- end
310
- if r4
311
- r2 = r4
312
- else
313
- if input.index('Alors', index) == index
314
- r5 = (SyntaxNode).new(input, index...(index + 5))
315
- @index += 5
316
- else
317
- terminal_parse_failure('Alors')
318
- r5 = nil
319
- end
320
- if r5
321
- r2 = r5
322
- else
323
- if input.index('Et', index) == index
324
- r6 = (SyntaxNode).new(input, index...(index + 2))
325
- @index += 2
326
- else
327
- terminal_parse_failure('Et')
328
- r6 = nil
329
- end
330
- if r6
331
- r2 = r6
332
- else
333
- if input.index('SoitScenario', index) == index
334
- r7 = (SyntaxNode).new(input, index...(index + 12))
335
- @index += 12
336
- else
337
- terminal_parse_failure('SoitScenario')
338
- r7 = nil
339
- end
340
- if r7
341
- r2 = r7
342
- else
343
- self.index = i2
344
- r2 = nil
345
- end
346
- end
347
- end
348
- end
349
- end
350
- s0 << r2
351
- if r2
352
- r8 = _nt_space
353
- s0 << r8
354
- if r8
355
- r9 = _nt_sentence_line
356
- s0 << r9
357
- end
358
- end
359
- end
360
- if s0.last
361
- r0 = (Cucumber::Parser::StepNode).new(input, i0...index, s0)
362
- r0.extend(Step0)
363
- else
364
- self.index = i0
365
- r0 = nil
366
- end
367
-
368
- node_cache[:step][start_index] = r0
369
-
370
- return r0
371
- end
372
-
373
- module SentenceLine0
374
- end
375
-
376
- module SentenceLine1
377
- def eol
378
- elements[1]
379
- end
380
- end
381
-
382
- def _nt_sentence_line
383
- start_index = index
384
- if node_cache[:sentence_line].has_key?(index)
385
- cached = node_cache[:sentence_line][index]
386
- @index = cached.interval.end if cached
387
- return cached
388
- end
389
-
390
- i0, s0 = index, []
391
- s1, i1 = [], index
392
- loop do
393
- i2, s2 = index, []
394
- i3 = index
395
- r4 = _nt_eol
396
- if r4
397
- r3 = nil
398
- else
399
- self.index = i3
400
- r3 = SyntaxNode.new(input, index...index)
401
- end
402
- s2 << r3
403
- if r3
404
- if index < input_length
405
- r5 = (SyntaxNode).new(input, index...(index + 1))
406
- @index += 1
407
- else
408
- terminal_parse_failure("any character")
409
- r5 = nil
410
- end
411
- s2 << r5
412
- end
413
- if s2.last
414
- r2 = (SyntaxNode).new(input, i2...index, s2)
415
- r2.extend(SentenceLine0)
416
- else
417
- self.index = i2
418
- r2 = nil
419
- end
420
- if r2
421
- s1 << r2
422
- else
423
- break
424
- end
425
- end
426
- r1 = SyntaxNode.new(input, i1...index, s1)
427
- s0 << r1
428
- if r1
429
- r6 = _nt_eol
430
- s0 << r6
431
- end
432
- if s0.last
433
- r0 = (SyntaxNode).new(input, i0...index, s0)
434
- r0.extend(SentenceLine1)
435
- else
436
- self.index = i0
437
- r0 = nil
438
- end
439
-
440
- node_cache[:sentence_line][start_index] = r0
441
-
442
- return r0
443
- end
444
-
445
- def _nt_space
446
- start_index = index
447
- if node_cache[:space].has_key?(index)
448
- cached = node_cache[:space][index]
449
- @index = cached.interval.end if cached
450
- return cached
451
- end
452
-
453
- s0, i0 = [], index
454
- loop do
455
- if input.index(Regexp.new('[ \\t\\r\\n]'), index) == index
456
- r1 = (SyntaxNode).new(input, index...(index + 1))
457
- @index += 1
458
- else
459
- r1 = nil
460
- end
461
- if r1
462
- s0 << r1
463
- else
464
- break
465
- end
466
- end
467
- r0 = SyntaxNode.new(input, i0...index, s0)
468
-
469
- node_cache[:space][start_index] = r0
470
-
471
- return r0
472
- end
473
-
474
- def _nt_eol
475
- start_index = index
476
- if node_cache[:eol].has_key?(index)
477
- cached = node_cache[:eol][index]
478
- @index = cached.interval.end if cached
479
- return cached
480
- end
481
-
482
- i0 = index
483
- if input.index("\r\n", index) == index
484
- r1 = (SyntaxNode).new(input, index...(index + 2))
485
- @index += 2
486
- else
487
- terminal_parse_failure("\r\n")
488
- r1 = nil
489
- end
490
- if r1
491
- r0 = r1
492
- else
493
- if input.index("\n", index) == index
494
- r2 = (SyntaxNode).new(input, index...(index + 1))
495
- @index += 1
496
- else
497
- terminal_parse_failure("\n")
498
- r2 = nil
499
- end
500
- if r2
501
- r0 = r2
502
- else
503
- r3 = _nt_eof
504
- if r3
505
- r0 = r3
506
- else
507
- self.index = i0
508
- r0 = nil
509
- end
510
- end
511
- end
512
-
513
- node_cache[:eol][start_index] = r0
514
-
515
- return r0
516
- end
517
-
518
- def _nt_eof
519
- start_index = index
520
- if node_cache[:eof].has_key?(index)
521
- cached = node_cache[:eof][index]
522
- @index = cached.interval.end if cached
523
- return cached
524
- end
525
-
526
- i0 = index
527
- if index < input_length
528
- r1 = (SyntaxNode).new(input, index...(index + 1))
529
- @index += 1
530
- else
531
- terminal_parse_failure("any character")
532
- r1 = nil
533
- end
534
- if r1
535
- r0 = nil
536
- else
537
- self.index = i0
538
- r0 = SyntaxNode.new(input, index...index)
539
- end
540
-
541
- node_cache[:eof][start_index] = r0
542
-
543
- return r0
544
- end
545
-
546
- end
547
-
548
- class StoryParser < Treetop::Runtime::CompiledParser
549
- include Story
550
- end
551
-
552
-
553
- end
554
- end