aslakhellesoy-cucumber 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. data/History.txt +4 -0
  2. data/License.txt +20 -0
  3. data/Manifest.txt +73 -0
  4. data/README.txt +78 -0
  5. data/Rakefile +4 -0
  6. data/bin/cucumber +3 -0
  7. data/config/hoe.rb +70 -0
  8. data/config/requirements.rb +15 -0
  9. data/examples/Rakefile +7 -0
  10. data/examples/pure_ruby/addition.rb +16 -0
  11. data/examples/pure_ruby/steps/addition_steps.rb +43 -0
  12. data/examples/simple/addition.story +12 -0
  13. data/examples/simple/division.story +17 -0
  14. data/examples/simple/steps/addition_steps.rb +43 -0
  15. data/examples/simple_norwegian/steg/matte_steg.rb.rb +31 -0
  16. data/examples/simple_norwegian/summering.story +10 -0
  17. data/examples/web/run_stories.story +10 -0
  18. data/examples/web/steps/stories_steps.rb +39 -0
  19. data/gem_tasks/deployment.rake +34 -0
  20. data/gem_tasks/environment.rake +7 -0
  21. data/gem_tasks/fix_cr_lf.rake +10 -0
  22. data/gem_tasks/rspec.rake +21 -0
  23. data/gem_tasks/treetop.rake +33 -0
  24. data/gem_tasks/website.rake +17 -0
  25. data/lib/cucumber.rb +17 -0
  26. data/lib/cucumber/cli.rb +118 -0
  27. data/lib/cucumber/core_ext/proc.rb +35 -0
  28. data/lib/cucumber/core_ext/string.rb +17 -0
  29. data/lib/cucumber/executor.rb +85 -0
  30. data/lib/cucumber/formatters.rb +1 -0
  31. data/lib/cucumber/formatters/ansicolor.rb +89 -0
  32. data/lib/cucumber/formatters/html_formatter.rb +271 -0
  33. data/lib/cucumber/formatters/pretty_formatter.rb +66 -0
  34. data/lib/cucumber/formatters/progress_formatter.rb +41 -0
  35. data/lib/cucumber/parser/languages.yml +35 -0
  36. data/lib/cucumber/parser/nodes.rb +88 -0
  37. data/lib/cucumber/parser/story_parser.rb +13 -0
  38. data/lib/cucumber/parser/story_parser.treetop.erb +41 -0
  39. data/lib/cucumber/parser/story_parser_en.rb +554 -0
  40. data/lib/cucumber/parser/story_parser_fr.rb +554 -0
  41. data/lib/cucumber/parser/story_parser_no.rb +554 -0
  42. data/lib/cucumber/parser/story_parser_pt.rb +554 -0
  43. data/lib/cucumber/parser/top_down_visitor.rb +26 -0
  44. data/lib/cucumber/rails/world.rb +69 -0
  45. data/lib/cucumber/rake/task.rb +74 -0
  46. data/lib/cucumber/ruby_tree.rb +14 -0
  47. data/lib/cucumber/ruby_tree/nodes.rb +68 -0
  48. data/lib/cucumber/step_methods.rb +39 -0
  49. data/lib/cucumber/step_mother.rb +38 -0
  50. data/lib/cucumber/tree.rb +127 -0
  51. data/lib/cucumber/version.rb +9 -0
  52. data/script/console +10 -0
  53. data/script/console.cmd +1 -0
  54. data/script/destroy +14 -0
  55. data/script/destroy.cmd +1 -0
  56. data/script/generate +14 -0
  57. data/script/generate.cmd +1 -0
  58. data/script/txt2html +74 -0
  59. data/script/txt2html.cmd +1 -0
  60. data/setup.rb +1585 -0
  61. data/spec/cucumber/core_ext/string_spec.rb +20 -0
  62. data/spec/cucumber/executor_spec.rb +55 -0
  63. data/spec/cucumber/formatters/ansicolor_spec.rb +18 -0
  64. data/spec/cucumber/formatters/html_formatter_spec.rb +59 -0
  65. data/spec/cucumber/formatters/stories.html +274 -0
  66. data/spec/cucumber/sell_cucumbers.story +9 -0
  67. data/spec/spec.opts +2 -0
  68. data/spec/spec_helper.rb +7 -0
  69. data/website/index.html +11 -0
  70. data/website/index.txt +39 -0
  71. data/website/javascripts/rounded_corners_lite.inc.js +285 -0
  72. data/website/stylesheets/screen.css +138 -0
  73. data/website/template.html.erb +48 -0
  74. metadata +157 -0
@@ -0,0 +1,554 @@
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