cascadence 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. data/.rspec +1 -0
  2. data/Gemfile +8 -0
  3. data/Gemfile.lock +36 -0
  4. data/LICENSE.txt +20 -0
  5. data/README.markdown +23 -0
  6. data/Rakefile +36 -0
  7. data/VERSION +1 -0
  8. data/cascadence.gemspec +111 -0
  9. data/coverage/.last_run.json +5 -0
  10. data/coverage/.resultset.json +588 -0
  11. data/coverage/assets/0.7.1/application.css +1110 -0
  12. data/coverage/assets/0.7.1/application.js +626 -0
  13. data/coverage/assets/0.7.1/fancybox/blank.gif +0 -0
  14. data/coverage/assets/0.7.1/fancybox/fancy_close.png +0 -0
  15. data/coverage/assets/0.7.1/fancybox/fancy_loading.png +0 -0
  16. data/coverage/assets/0.7.1/fancybox/fancy_nav_left.png +0 -0
  17. data/coverage/assets/0.7.1/fancybox/fancy_nav_right.png +0 -0
  18. data/coverage/assets/0.7.1/fancybox/fancy_shadow_e.png +0 -0
  19. data/coverage/assets/0.7.1/fancybox/fancy_shadow_n.png +0 -0
  20. data/coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png +0 -0
  21. data/coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png +0 -0
  22. data/coverage/assets/0.7.1/fancybox/fancy_shadow_s.png +0 -0
  23. data/coverage/assets/0.7.1/fancybox/fancy_shadow_se.png +0 -0
  24. data/coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png +0 -0
  25. data/coverage/assets/0.7.1/fancybox/fancy_shadow_w.png +0 -0
  26. data/coverage/assets/0.7.1/fancybox/fancy_title_left.png +0 -0
  27. data/coverage/assets/0.7.1/fancybox/fancy_title_main.png +0 -0
  28. data/coverage/assets/0.7.1/fancybox/fancy_title_over.png +0 -0
  29. data/coverage/assets/0.7.1/fancybox/fancy_title_right.png +0 -0
  30. data/coverage/assets/0.7.1/fancybox/fancybox-x.png +0 -0
  31. data/coverage/assets/0.7.1/fancybox/fancybox-y.png +0 -0
  32. data/coverage/assets/0.7.1/fancybox/fancybox.png +0 -0
  33. data/coverage/assets/0.7.1/favicon_green.png +0 -0
  34. data/coverage/assets/0.7.1/favicon_red.png +0 -0
  35. data/coverage/assets/0.7.1/favicon_yellow.png +0 -0
  36. data/coverage/assets/0.7.1/loading.gif +0 -0
  37. data/coverage/assets/0.7.1/magnify.png +0 -0
  38. data/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  39. data/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  40. data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  41. data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  42. data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  43. data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  44. data/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  45. data/coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  46. data/coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png +0 -0
  47. data/coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  48. data/coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png +0 -0
  49. data/coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png +0 -0
  50. data/coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  51. data/coverage/index.html +3702 -0
  52. data/lib/cascadence/class_methods.rb +39 -0
  53. data/lib/cascadence/flow.rb +17 -0
  54. data/lib/cascadence/helper.rb +21 -0
  55. data/lib/cascadence/stateful.rb +81 -0
  56. data/lib/cascadence.rb +7 -0
  57. data/spec/cascadence/class_methods_spec.rb +128 -0
  58. data/spec/cascadence/flow_spec.rb +64 -0
  59. data/spec/cascadence/fork_merge_spec.rb +86 -0
  60. data/spec/cascadence/helper_spec.rb +106 -0
  61. data/spec/cascadence/stateful_spec.rb +136 -0
  62. data/spec/cascadence_spec.rb +13 -0
  63. data/spec/spec_helper.rb +4 -0
  64. metadata +178 -0
@@ -0,0 +1,3702 @@
1
+ <!DOCTYPE html>
2
+ <html xmlns='http://www.w3.org/1999/xhtml'>
3
+ <head>
4
+ <title>Code coverage for Cascadence</title>
5
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
6
+ <script src='./assets/0.7.1/application.js' type='text/javascript'></script>
7
+ <link href='./assets/0.7.1/application.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
8
+ <link rel="shortcut icon" type="image/png" href="./assets/0.7.1/favicon_green.png" />
9
+ <link rel="icon" type="image/png" href="./assets/0.7.1/favicon.png" />
10
+ </head>
11
+
12
+ <body>
13
+ <div id="loading">
14
+ <img src="./assets/0.7.1/loading.gif" alt="loading"/>
15
+ </div>
16
+ <div id="wrapper" style="display:none;">
17
+ <div class="timestamp">Generated <abbr class="timeago" title="2013-01-31T10:00:39-08:00">2013-01-31T10:00:39-08:00</abbr></div>
18
+ <ul class="group_tabs"></ul>
19
+
20
+ <div id="content">
21
+ <div class="file_list_container" id="AllFiles">
22
+ <h2>
23
+ <span class="group_name">All Files</span>
24
+ (<span class="covered_percent"><span class="green">100.0%</span></span>
25
+ covered at
26
+ <span class="covered_strength">
27
+ <span class="green">
28
+ 27.16
29
+ </span>
30
+ </span> hits/line)
31
+ </h2>
32
+ <a name="AllFiles"></a>
33
+ <div>
34
+ <b>9</b> files in total.
35
+ <b>282</b> relevant lines.
36
+ <span class="green"><b>282</b> lines covered</span> and
37
+ <span class="red"><b>0</b> lines missed </span>
38
+ </div>
39
+ <table class="file_list">
40
+ <thead>
41
+ <tr>
42
+ <th>File</th>
43
+ <th>% covered</th>
44
+ <th>Lines</th>
45
+ <th>Relevant Lines</th>
46
+ <th>Lines covered</th>
47
+ <th>Lines missed</th>
48
+ <th>Avg. Hits / Line</th>
49
+ </tr>
50
+ </thead>
51
+ <tbody>
52
+
53
+ <tr>
54
+ <td class="strong"><a href="#96e91fb9bc7200ede13b2c27f1921dafe27fa293" class="src_link" title="lib/cascadence/class_methods.rb">lib/cascadence/class_methods.rb</a></td>
55
+ <td class="green strong">100.0 %</td>
56
+ <td>39</td>
57
+ <td>19</td>
58
+ <td>19</td>
59
+ <td>0</td>
60
+ <td>90.8</td>
61
+ </tr>
62
+
63
+ <tr>
64
+ <td class="strong"><a href="#2ee3b7ca34d7b875b83b39d761a969d4f0212007" class="src_link" title="lib/cascadence/flow.rb">lib/cascadence/flow.rb</a></td>
65
+ <td class="green strong">100.0 %</td>
66
+ <td>17</td>
67
+ <td>8</td>
68
+ <td>8</td>
69
+ <td>0</td>
70
+ <td>8.1</td>
71
+ </tr>
72
+
73
+ <tr>
74
+ <td class="strong"><a href="#c6dc01b4a40f722a3d2099a27d0353a083896b0f" class="src_link" title="lib/cascadence/helper.rb">lib/cascadence/helper.rb</a></td>
75
+ <td class="green strong">100.0 %</td>
76
+ <td>21</td>
77
+ <td>12</td>
78
+ <td>12</td>
79
+ <td>0</td>
80
+ <td>98.3</td>
81
+ </tr>
82
+
83
+ <tr>
84
+ <td class="strong"><a href="#80c6665a79d2f1b08d818eeb93e0f0925314637e" class="src_link" title="lib/cascadence/stateful.rb">lib/cascadence/stateful.rb</a></td>
85
+ <td class="green strong">100.0 %</td>
86
+ <td>81</td>
87
+ <td>43</td>
88
+ <td>43</td>
89
+ <td>0</td>
90
+ <td>38.1</td>
91
+ </tr>
92
+
93
+ <tr>
94
+ <td class="strong"><a href="#8d4a4aeeab065c42dc5836ee4eae8da23dd6ece3" class="src_link" title="spec/cascadence/flow_spec.rb">spec/cascadence/flow_spec.rb</a></td>
95
+ <td class="green strong">100.0 %</td>
96
+ <td>64</td>
97
+ <td>30</td>
98
+ <td>30</td>
99
+ <td>0</td>
100
+ <td>1.3</td>
101
+ </tr>
102
+
103
+ <tr>
104
+ <td class="strong"><a href="#cf7d59838ed62fd3d56a8782db131b901bb3f748" class="src_link" title="spec/cascadence/fork_merge_spec.rb">spec/cascadence/fork_merge_spec.rb</a></td>
105
+ <td class="green strong">100.0 %</td>
106
+ <td>86</td>
107
+ <td>43</td>
108
+ <td>43</td>
109
+ <td>0</td>
110
+ <td>2.1</td>
111
+ </tr>
112
+
113
+ <tr>
114
+ <td class="strong"><a href="#38975a168d1b95d4381368abf464952103185ab2" class="src_link" title="spec/cascadence/helper_spec.rb">spec/cascadence/helper_spec.rb</a></td>
115
+ <td class="green strong">100.0 %</td>
116
+ <td>106</td>
117
+ <td>52</td>
118
+ <td>52</td>
119
+ <td>0</td>
120
+ <td>1.4</td>
121
+ </tr>
122
+
123
+ <tr>
124
+ <td class="strong"><a href="#dddfd930568df8af4719a119b00fd34dd9244183" class="src_link" title="spec/cascadence/stateful_spec.rb">spec/cascadence/stateful_spec.rb</a></td>
125
+ <td class="green strong">100.0 %</td>
126
+ <td>136</td>
127
+ <td>68</td>
128
+ <td>68</td>
129
+ <td>0</td>
130
+ <td>2.4</td>
131
+ </tr>
132
+
133
+ <tr>
134
+ <td class="strong"><a href="#ae64ce5fe55ce14ad0f7fd57b2973adf7c375460" class="src_link" title="spec/cascadence_spec.rb">spec/cascadence_spec.rb</a></td>
135
+ <td class="green strong">100.0 %</td>
136
+ <td>13</td>
137
+ <td>7</td>
138
+ <td>7</td>
139
+ <td>0</td>
140
+ <td>1.9</td>
141
+ </tr>
142
+
143
+ </tbody>
144
+ </table>
145
+ </div>
146
+
147
+
148
+
149
+ </div>
150
+
151
+ <div id="footer">
152
+ Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.7.1
153
+ and simplecov-html v0.7.1<br/>
154
+ using RSpec
155
+ </div>
156
+
157
+ <div class="source_files">
158
+
159
+ <div class="source_table" id="96e91fb9bc7200ede13b2c27f1921dafe27fa293">
160
+ <div class="header">
161
+ <h3>lib/cascadence/class_methods.rb</h3>
162
+ <h4><span class="green">100.0 %</span> covered</h4>
163
+ <div>
164
+ <b>19</b> relevant lines.
165
+ <span class="green"><b>19</b> lines covered</span> and
166
+ <span class="red"><b>0</b> lines missed.</span>
167
+ </div>
168
+ </div>
169
+
170
+ <pre>
171
+ <ol>
172
+
173
+ <li class="never" data-hits="" data-linenumber="1">
174
+
175
+
176
+ <code class="ruby"></code>
177
+ </li>
178
+
179
+ <li class="covered" data-hits="1" data-linenumber="2">
180
+ <span class="hits">1</span>
181
+
182
+ <code class="ruby">module Cascadence</code>
183
+ </li>
184
+
185
+ <li class="never" data-hits="" data-linenumber="3">
186
+
187
+
188
+ <code class="ruby"></code>
189
+ </li>
190
+
191
+ <li class="covered" data-hits="1" data-linenumber="4">
192
+ <span class="hits">1</span>
193
+
194
+ <code class="ruby"> module ClassMethods</code>
195
+ </li>
196
+
197
+ <li class="never" data-hits="" data-linenumber="5">
198
+
199
+
200
+ <code class="ruby"> # Yes, I realize this is confusing</code>
201
+ </li>
202
+
203
+ <li class="never" data-hits="" data-linenumber="6">
204
+
205
+
206
+ <code class="ruby"> # I'm sorry for code-gulfing</code>
207
+ </li>
208
+
209
+ <li class="never" data-hits="" data-linenumber="7">
210
+
211
+
212
+ <code class="ruby"> # TODO: Write this class so we don't depend so heavily</code>
213
+ </li>
214
+
215
+ <li class="never" data-hits="" data-linenumber="8">
216
+
217
+
218
+ <code class="ruby"> # on recusion and &quot;lazy evaluation&quot; to get the ordering.</code>
219
+ </li>
220
+
221
+ <li class="never" data-hits="" data-linenumber="9">
222
+
223
+
224
+ <code class="ruby"> # This is probably 100% necessary if this project were</code>
225
+ </li>
226
+
227
+ <li class="never" data-hits="" data-linenumber="10">
228
+
229
+
230
+ <code class="ruby"> # ever to get big and require junk</code>
231
+ </li>
232
+
233
+ <li class="covered" data-hits="1" data-linenumber="11">
234
+ <span class="hits">1</span>
235
+
236
+ <code class="ruby"> def cascadence_order</code>
237
+ </li>
238
+
239
+ <li class="covered" data-hits="321" data-linenumber="12">
240
+ <span class="hits">321</span>
241
+
242
+ <code class="ruby"> @cascadence_order ||= []</code>
243
+ </li>
244
+
245
+ <li class="covered" data-hits="321" data-linenumber="13">
246
+ <span class="hits">321</span>
247
+
248
+ <code class="ruby"> @forked_position ||= []</code>
249
+ </li>
250
+
251
+ <li class="covered" data-hits="321" data-linenumber="14">
252
+ <span class="hits">321</span>
253
+
254
+ <code class="ruby"> @merge_position ||= []</code>
255
+ </li>
256
+
257
+ <li class="covered" data-hits="321" data-linenumber="15">
258
+ <span class="hits">321</span>
259
+
260
+ <code class="ruby"> unless @cascadence_order.nil?</code>
261
+ </li>
262
+
263
+ <li class="covered" data-hits="321" data-linenumber="16">
264
+ <span class="hits">321</span>
265
+
266
+ <code class="ruby"> Helper.generate_tributary(@cascadence_order.reverse, @forked_position.clone, @merge_position.clone)</code>
267
+ </li>
268
+
269
+ <li class="never" data-hits="" data-linenumber="17">
270
+
271
+
272
+ <code class="ruby"> end</code>
273
+ </li>
274
+
275
+ <li class="never" data-hits="" data-linenumber="18">
276
+
277
+
278
+ <code class="ruby"> end</code>
279
+ </li>
280
+
281
+ <li class="never" data-hits="" data-linenumber="19">
282
+
283
+
284
+ <code class="ruby"></code>
285
+ </li>
286
+
287
+ <li class="covered" data-hits="1" data-linenumber="20">
288
+ <span class="hits">1</span>
289
+
290
+ <code class="ruby"> def cascading_order( *order )</code>
291
+ </li>
292
+
293
+ <li class="covered" data-hits="39" data-linenumber="21">
294
+ <span class="hits">39</span>
295
+
296
+ <code class="ruby"> @cascadence_order ||= []</code>
297
+ </li>
298
+
299
+ <li class="covered" data-hits="39" data-linenumber="22">
300
+ <span class="hits">39</span>
301
+
302
+ <code class="ruby"> @cascadence_order &lt;&lt; order</code>
303
+ </li>
304
+
305
+ <li class="never" data-hits="" data-linenumber="23">
306
+
307
+
308
+ <code class="ruby"> end </code>
309
+ </li>
310
+
311
+ <li class="never" data-hits="" data-linenumber="24">
312
+
313
+
314
+ <code class="ruby"></code>
315
+ </li>
316
+
317
+ <li class="covered" data-hits="1" data-linenumber="25">
318
+ <span class="hits">1</span>
319
+
320
+ <code class="ruby"> def fork_after( location )</code>
321
+ </li>
322
+
323
+ <li class="covered" data-hits="6" data-linenumber="26">
324
+ <span class="hits">6</span>
325
+
326
+ <code class="ruby"> @forked_position ||= []</code>
327
+ </li>
328
+
329
+ <li class="covered" data-hits="6" data-linenumber="27">
330
+ <span class="hits">6</span>
331
+
332
+ <code class="ruby"> index = cascadence_order.index location</code>
333
+ </li>
334
+
335
+ <li class="covered" data-hits="6" data-linenumber="28">
336
+ <span class="hits">6</span>
337
+
338
+ <code class="ruby"> @forked_position &lt;&lt; (index + 1)</code>
339
+ </li>
340
+
341
+ <li class="never" data-hits="" data-linenumber="29">
342
+
343
+
344
+ <code class="ruby"> end</code>
345
+ </li>
346
+
347
+ <li class="never" data-hits="" data-linenumber="30">
348
+
349
+
350
+ <code class="ruby"></code>
351
+ </li>
352
+
353
+ <li class="covered" data-hits="1" data-linenumber="31">
354
+ <span class="hits">1</span>
355
+
356
+ <code class="ruby"> def merge_before( location )</code>
357
+ </li>
358
+
359
+ <li class="covered" data-hits="6" data-linenumber="32">
360
+ <span class="hits">6</span>
361
+
362
+ <code class="ruby"> @merge_position ||= []</code>
363
+ </li>
364
+
365
+ <li class="covered" data-hits="6" data-linenumber="33">
366
+ <span class="hits">6</span>
367
+
368
+ <code class="ruby"> index = cascadence_order.index location</code>
369
+ </li>
370
+
371
+ <li class="covered" data-hits="6" data-linenumber="34">
372
+ <span class="hits">6</span>
373
+
374
+ <code class="ruby"> @merge_position &lt;&lt; (index - 1)</code>
375
+ </li>
376
+
377
+ <li class="never" data-hits="" data-linenumber="35">
378
+
379
+
380
+ <code class="ruby"> end</code>
381
+ </li>
382
+
383
+ <li class="never" data-hits="" data-linenumber="36">
384
+
385
+
386
+ <code class="ruby"></code>
387
+ </li>
388
+
389
+ <li class="never" data-hits="" data-linenumber="37">
390
+
391
+
392
+ <code class="ruby"> end</code>
393
+ </li>
394
+
395
+ <li class="never" data-hits="" data-linenumber="38">
396
+
397
+
398
+ <code class="ruby"></code>
399
+ </li>
400
+
401
+ <li class="never" data-hits="" data-linenumber="39">
402
+
403
+
404
+ <code class="ruby">end</code>
405
+ </li>
406
+
407
+ </ol>
408
+ </pre>
409
+ </div>
410
+
411
+ <div class="source_table" id="2ee3b7ca34d7b875b83b39d761a969d4f0212007">
412
+ <div class="header">
413
+ <h3>lib/cascadence/flow.rb</h3>
414
+ <h4><span class="green">100.0 %</span> covered</h4>
415
+ <div>
416
+ <b>8</b> relevant lines.
417
+ <span class="green"><b>8</b> lines covered</span> and
418
+ <span class="red"><b>0</b> lines missed.</span>
419
+ </div>
420
+ </div>
421
+
422
+ <pre>
423
+ <ol>
424
+
425
+ <li class="never" data-hits="" data-linenumber="1">
426
+
427
+
428
+ <code class="ruby"></code>
429
+ </li>
430
+
431
+ <li class="covered" data-hits="1" data-linenumber="2">
432
+ <span class="hits">1</span>
433
+
434
+ <code class="ruby">module Cascadence</code>
435
+ </li>
436
+
437
+ <li class="never" data-hits="" data-linenumber="3">
438
+
439
+
440
+ <code class="ruby"></code>
441
+ </li>
442
+
443
+ <li class="never" data-hits="" data-linenumber="4">
444
+
445
+
446
+ <code class="ruby"> # A simple implementation of stateful</code>
447
+ </li>
448
+
449
+ <li class="covered" data-hits="1" data-linenumber="5">
450
+ <span class="hits">1</span>
451
+
452
+ <code class="ruby"> class Flow</code>
453
+ </li>
454
+
455
+ <li class="covered" data-hits="1" data-linenumber="6">
456
+ <span class="hits">1</span>
457
+
458
+ <code class="ruby"> include Stateful</code>
459
+ </li>
460
+
461
+ <li class="covered" data-hits="1" data-linenumber="7">
462
+ <span class="hits">1</span>
463
+
464
+ <code class="ruby"> attr_accessor :state</code>
465
+ </li>
466
+
467
+ <li class="never" data-hits="" data-linenumber="8">
468
+
469
+
470
+ <code class="ruby"></code>
471
+ </li>
472
+
473
+ <li class="covered" data-hits="1" data-linenumber="9">
474
+ <span class="hits">1</span>
475
+
476
+ <code class="ruby"> def self.inherited(child)</code>
477
+ </li>
478
+
479
+ <li class="covered" data-hits="20" data-linenumber="10">
480
+ <span class="hits">20</span>
481
+
482
+ <code class="ruby"> if child.superclass.respond_to? :cascadence_order</code>
483
+ </li>
484
+
485
+ <li class="covered" data-hits="20" data-linenumber="11">
486
+ <span class="hits">20</span>
487
+
488
+ <code class="ruby"> order = child.superclass.cascadence_order</code>
489
+ </li>
490
+
491
+ <li class="covered" data-hits="20" data-linenumber="12">
492
+ <span class="hits">20</span>
493
+
494
+ <code class="ruby"> child.cascading_order *order</code>
495
+ </li>
496
+
497
+ <li class="never" data-hits="" data-linenumber="13">
498
+
499
+
500
+ <code class="ruby"> end</code>
501
+ </li>
502
+
503
+ <li class="never" data-hits="" data-linenumber="14">
504
+
505
+
506
+ <code class="ruby"> end</code>
507
+ </li>
508
+
509
+ <li class="never" data-hits="" data-linenumber="15">
510
+
511
+
512
+ <code class="ruby"> end</code>
513
+ </li>
514
+
515
+ <li class="never" data-hits="" data-linenumber="16">
516
+
517
+
518
+ <code class="ruby"></code>
519
+ </li>
520
+
521
+ <li class="never" data-hits="" data-linenumber="17">
522
+
523
+
524
+ <code class="ruby">end</code>
525
+ </li>
526
+
527
+ </ol>
528
+ </pre>
529
+ </div>
530
+
531
+ <div class="source_table" id="c6dc01b4a40f722a3d2099a27d0353a083896b0f">
532
+ <div class="header">
533
+ <h3>lib/cascadence/helper.rb</h3>
534
+ <h4><span class="green">100.0 %</span> covered</h4>
535
+ <div>
536
+ <b>12</b> relevant lines.
537
+ <span class="green"><b>12</b> lines covered</span> and
538
+ <span class="red"><b>0</b> lines missed.</span>
539
+ </div>
540
+ </div>
541
+
542
+ <pre>
543
+ <ol>
544
+
545
+ <li class="covered" data-hits="1" data-linenumber="1">
546
+ <span class="hits">1</span>
547
+
548
+ <code class="ruby">module Cascadence</code>
549
+ </li>
550
+
551
+ <li class="covered" data-hits="1" data-linenumber="2">
552
+ <span class="hits">1</span>
553
+
554
+ <code class="ruby"> module Helper</code>
555
+ </li>
556
+
557
+ <li class="never" data-hits="" data-linenumber="3">
558
+
559
+
560
+ <code class="ruby"> # see the specs for what these guys do</code>
561
+ </li>
562
+
563
+ <li class="covered" data-hits="1" data-linenumber="4">
564
+ <span class="hits">1</span>
565
+
566
+ <code class="ruby"> def self.generate_tributary( arrays, starts=[], finish=[] )</code>
567
+ </li>
568
+
569
+ <li class="never" data-hits="" data-linenumber="5">
570
+
571
+
572
+ <code class="ruby"></code>
573
+ </li>
574
+
575
+ <li class="covered" data-hits="399" data-linenumber="6">
576
+ <span class="hits">399</span>
577
+
578
+ <code class="ruby"> if starts.empty? || arrays.count == 1</code>
579
+ </li>
580
+
581
+ <li class="covered" data-hits="327" data-linenumber="7">
582
+ <span class="hits">327</span>
583
+
584
+ <code class="ruby"> return arrays.reverse.flatten</code>
585
+ </li>
586
+
587
+ <li class="never" data-hits="" data-linenumber="8">
588
+
589
+
590
+ <code class="ruby"> end</code>
591
+ </li>
592
+
593
+ <li class="covered" data-hits="72" data-linenumber="9">
594
+ <span class="hits">72</span>
595
+
596
+ <code class="ruby"> generate_tributary arrays.push(replace_in_part(arrays.pop, arrays.pop, starts.pop, finish.pop) ), starts, finish</code>
597
+ </li>
598
+
599
+ <li class="never" data-hits="" data-linenumber="10">
600
+
601
+
602
+ <code class="ruby"> end</code>
603
+ </li>
604
+
605
+ <li class="never" data-hits="" data-linenumber="11">
606
+
607
+
608
+ <code class="ruby"></code>
609
+ </li>
610
+
611
+ <li class="covered" data-hits="1" data-linenumber="12">
612
+ <span class="hits">1</span>
613
+
614
+ <code class="ruby"> def self.replace_in_part(original, chunk, start, finish=nil)</code>
615
+ </li>
616
+
617
+ <li class="covered" data-hits="77" data-linenumber="13">
618
+ <span class="hits">77</span>
619
+
620
+ <code class="ruby"> return chunk if original.nil? || original.empty?</code>
621
+ </li>
622
+
623
+ <li class="covered" data-hits="76" data-linenumber="14">
624
+ <span class="hits">76</span>
625
+
626
+ <code class="ruby"> throw :OutOfRange if start &gt;= original.count</code>
627
+ </li>
628
+
629
+ <li class="covered" data-hits="75" data-linenumber="15">
630
+ <span class="hits">75</span>
631
+
632
+ <code class="ruby"> result = original.clone</code>
633
+ </li>
634
+
635
+ <li class="covered" data-hits="75" data-linenumber="16">
636
+ <span class="hits">75</span>
637
+
638
+ <code class="ruby"> result[start..(finish||-1)] = chunk</code>
639
+ </li>
640
+
641
+ <li class="covered" data-hits="75" data-linenumber="17">
642
+ <span class="hits">75</span>
643
+
644
+ <code class="ruby"> return result</code>
645
+ </li>
646
+
647
+ <li class="never" data-hits="" data-linenumber="18">
648
+
649
+
650
+ <code class="ruby"> end</code>
651
+ </li>
652
+
653
+ <li class="never" data-hits="" data-linenumber="19">
654
+
655
+
656
+ <code class="ruby"></code>
657
+ </li>
658
+
659
+ <li class="never" data-hits="" data-linenumber="20">
660
+
661
+
662
+ <code class="ruby"> end</code>
663
+ </li>
664
+
665
+ <li class="never" data-hits="" data-linenumber="21">
666
+
667
+
668
+ <code class="ruby">end</code>
669
+ </li>
670
+
671
+ </ol>
672
+ </pre>
673
+ </div>
674
+
675
+ <div class="source_table" id="80c6665a79d2f1b08d818eeb93e0f0925314637e">
676
+ <div class="header">
677
+ <h3>lib/cascadence/stateful.rb</h3>
678
+ <h4><span class="green">100.0 %</span> covered</h4>
679
+ <div>
680
+ <b>43</b> relevant lines.
681
+ <span class="green"><b>43</b> lines covered</span> and
682
+ <span class="red"><b>0</b> lines missed.</span>
683
+ </div>
684
+ </div>
685
+
686
+ <pre>
687
+ <ol>
688
+
689
+ <li class="never" data-hits="" data-linenumber="1">
690
+
691
+
692
+ <code class="ruby"></code>
693
+ </li>
694
+
695
+ <li class="covered" data-hits="1" data-linenumber="2">
696
+ <span class="hits">1</span>
697
+
698
+ <code class="ruby">module Cascadence</code>
699
+ </li>
700
+
701
+ <li class="never" data-hits="" data-linenumber="3">
702
+
703
+
704
+ <code class="ruby"></code>
705
+ </li>
706
+
707
+ <li class="covered" data-hits="1" data-linenumber="4">
708
+ <span class="hits">1</span>
709
+
710
+ <code class="ruby"> module Stateful</code>
711
+ </li>
712
+
713
+ <li class="never" data-hits="" data-linenumber="5">
714
+
715
+
716
+ <code class="ruby"></code>
717
+ </li>
718
+
719
+ <li class="covered" data-hits="1" data-linenumber="6">
720
+ <span class="hits">1</span>
721
+
722
+ <code class="ruby"> def self.included( base )</code>
723
+ </li>
724
+
725
+ <li class="covered" data-hits="2" data-linenumber="7">
726
+ <span class="hits">2</span>
727
+
728
+ <code class="ruby"> base.extend ClassMethods</code>
729
+ </li>
730
+
731
+ <li class="covered" data-hits="2" data-linenumber="8">
732
+ <span class="hits">2</span>
733
+
734
+ <code class="ruby"> base.class_exec do</code>
735
+ </li>
736
+
737
+ <li class="covered" data-hits="2" data-linenumber="9">
738
+ <span class="hits">2</span>
739
+
740
+ <code class="ruby"> attr_reader :cascadence_position</code>
741
+ </li>
742
+
743
+ <li class="never" data-hits="" data-linenumber="10">
744
+
745
+
746
+ <code class="ruby"> end # class_exec</code>
747
+ </li>
748
+
749
+ <li class="never" data-hits="" data-linenumber="11">
750
+
751
+
752
+ <code class="ruby"> end</code>
753
+ </li>
754
+
755
+ <li class="never" data-hits="" data-linenumber="12">
756
+
757
+
758
+ <code class="ruby"></code>
759
+ </li>
760
+
761
+ <li class="covered" data-hits="1" data-linenumber="13">
762
+ <span class="hits">1</span>
763
+
764
+ <code class="ruby"> def run_states</code>
765
+ </li>
766
+
767
+ <li class="covered" data-hits="12" data-linenumber="14">
768
+ <span class="hits">12</span>
769
+
770
+ <code class="ruby"> run_until :end</code>
771
+ </li>
772
+
773
+ <li class="never" data-hits="" data-linenumber="15">
774
+
775
+
776
+ <code class="ruby"> end</code>
777
+ </li>
778
+
779
+ <li class="never" data-hits="" data-linenumber="16">
780
+
781
+
782
+ <code class="ruby"></code>
783
+ </li>
784
+
785
+ <li class="covered" data-hits="1" data-linenumber="17">
786
+ <span class="hits">1</span>
787
+
788
+ <code class="ruby"> def run_until( target=nil )</code>
789
+ </li>
790
+
791
+ <li class="never" data-hits="" data-linenumber="18">
792
+
793
+
794
+ <code class="ruby"> </code>
795
+ </li>
796
+
797
+ <li class="covered" data-hits="34" data-linenumber="19">
798
+ <span class="hits">34</span>
799
+
800
+ <code class="ruby"> return run_next if target.nil? and !block_given?</code>
801
+ </li>
802
+
803
+ <li class="never" data-hits="" data-linenumber="20">
804
+
805
+
806
+ <code class="ruby"> </code>
807
+ </li>
808
+
809
+ <li class="covered" data-hits="31" data-linenumber="21">
810
+ <span class="hits">31</span>
811
+
812
+ <code class="ruby"> if block_given?</code>
813
+ </li>
814
+
815
+ <li class="covered" data-hits="16" data-linenumber="22">
816
+ <span class="hits">16</span>
817
+
818
+ <code class="ruby"> while !_cascadence_end? and !yield(self)</code>
819
+ </li>
820
+
821
+ <li class="covered" data-hits="66" data-linenumber="23">
822
+ <span class="hits">66</span>
823
+
824
+ <code class="ruby"> run_next</code>
825
+ </li>
826
+
827
+ <li class="never" data-hits="" data-linenumber="24">
828
+
829
+
830
+ <code class="ruby"> end</code>
831
+ </li>
832
+
833
+ <li class="covered" data-hits="16" data-linenumber="25">
834
+ <span class="hits">16</span>
835
+
836
+ <code class="ruby"> return self</code>
837
+ </li>
838
+
839
+ <li class="never" data-hits="" data-linenumber="26">
840
+
841
+
842
+ <code class="ruby"> end</code>
843
+ </li>
844
+
845
+ <li class="never" data-hits="" data-linenumber="27">
846
+
847
+
848
+ <code class="ruby"> </code>
849
+ </li>
850
+
851
+ <li class="covered" data-hits="15" data-linenumber="28">
852
+ <span class="hits">15</span>
853
+
854
+ <code class="ruby"> case target.class.to_s</code>
855
+ </li>
856
+
857
+ <li class="never" data-hits="" data-linenumber="29">
858
+
859
+
860
+ <code class="ruby"> when &quot;String&quot;, &quot;Symbol&quot;</code>
861
+ </li>
862
+
863
+ <li class="covered" data-hits="72" data-linenumber="30">
864
+ <span class="hits">72</span>
865
+
866
+ <code class="ruby"> return run_until { |state| state.current_step_name.to_s == target.to_s }</code>
867
+ </li>
868
+
869
+ <li class="never" data-hits="" data-linenumber="31">
870
+
871
+
872
+ <code class="ruby"> when &quot;Fixnum&quot;, &quot;Integer&quot;</code>
873
+ </li>
874
+
875
+ <li class="covered" data-hits="4" data-linenumber="32">
876
+ <span class="hits">4</span>
877
+
878
+ <code class="ruby"> return run_until { |state| state.cascadence_position == target }</code>
879
+ </li>
880
+
881
+ <li class="never" data-hits="" data-linenumber="33">
882
+
883
+
884
+ <code class="ruby"> else</code>
885
+ </li>
886
+
887
+ <li class="covered" data-hits="1" data-linenumber="34">
888
+ <span class="hits">1</span>
889
+
890
+ <code class="ruby"> throw &quot;Bad input error.&quot; unless target.respond_to? :call</code>
891
+ </li>
892
+
893
+ <li class="covered" data-hits="4" data-linenumber="35">
894
+ <span class="hits">4</span>
895
+
896
+ <code class="ruby"> return run_until { |state| target.call state }</code>
897
+ </li>
898
+
899
+ <li class="never" data-hits="" data-linenumber="36">
900
+
901
+
902
+ <code class="ruby"> end</code>
903
+ </li>
904
+
905
+ <li class="never" data-hits="" data-linenumber="37">
906
+
907
+
908
+ <code class="ruby"> end</code>
909
+ </li>
910
+
911
+ <li class="never" data-hits="" data-linenumber="38">
912
+
913
+
914
+ <code class="ruby"></code>
915
+ </li>
916
+
917
+ <li class="covered" data-hits="1" data-linenumber="39">
918
+ <span class="hits">1</span>
919
+
920
+ <code class="ruby"> def run_next</code>
921
+ </li>
922
+
923
+ <li class="covered" data-hits="82" data-linenumber="40">
924
+ <span class="hits">82</span>
925
+
926
+ <code class="ruby"> _debug_helper</code>
927
+ </li>
928
+
929
+ <li class="never" data-hits="" data-linenumber="41">
930
+
931
+
932
+ <code class="ruby"></code>
933
+ </li>
934
+
935
+ <li class="covered" data-hits="82" data-linenumber="42">
936
+ <span class="hits">82</span>
937
+
938
+ <code class="ruby"> unless next_step_name.nil?</code>
939
+ </li>
940
+
941
+ <li class="covered" data-hits="78" data-linenumber="43">
942
+ <span class="hits">78</span>
943
+
944
+ <code class="ruby"> send next_step_name</code>
945
+ </li>
946
+
947
+ <li class="covered" data-hits="78" data-linenumber="44">
948
+ <span class="hits">78</span>
949
+
950
+ <code class="ruby"> _increment_cascadence</code>
951
+ </li>
952
+
953
+ <li class="never" data-hits="" data-linenumber="45">
954
+
955
+
956
+ <code class="ruby"> end</code>
957
+ </li>
958
+
959
+ <li class="covered" data-hits="82" data-linenumber="46">
960
+ <span class="hits">82</span>
961
+
962
+ <code class="ruby"> self</code>
963
+ </li>
964
+
965
+ <li class="never" data-hits="" data-linenumber="47">
966
+
967
+
968
+ <code class="ruby"> end</code>
969
+ </li>
970
+
971
+ <li class="never" data-hits="" data-linenumber="48">
972
+
973
+
974
+ <code class="ruby"></code>
975
+ </li>
976
+
977
+ <li class="covered" data-hits="1" data-linenumber="49">
978
+ <span class="hits">1</span>
979
+
980
+ <code class="ruby"> def current_step_name</code>
981
+ </li>
982
+
983
+ <li class="covered" data-hits="67" data-linenumber="50">
984
+ <span class="hits">67</span>
985
+
986
+ <code class="ruby"> return nil if cascadence_position.nil?</code>
987
+ </li>
988
+
989
+ <li class="covered" data-hits="51" data-linenumber="51">
990
+ <span class="hits">51</span>
991
+
992
+ <code class="ruby"> self.class.cascadence_order[cascadence_position]</code>
993
+ </li>
994
+
995
+ <li class="never" data-hits="" data-linenumber="52">
996
+
997
+
998
+ <code class="ruby"> end</code>
999
+ </li>
1000
+
1001
+ <li class="never" data-hits="" data-linenumber="53">
1002
+
1003
+
1004
+ <code class="ruby"></code>
1005
+ </li>
1006
+
1007
+ <li class="covered" data-hits="1" data-linenumber="54">
1008
+ <span class="hits">1</span>
1009
+
1010
+ <code class="ruby"> def next_step_name</code>
1011
+ </li>
1012
+
1013
+ <li class="covered" data-hits="161" data-linenumber="55">
1014
+ <span class="hits">161</span>
1015
+
1016
+ <code class="ruby"> return self.class.cascadence_order.first if cascadence_position.nil?</code>
1017
+ </li>
1018
+
1019
+ <li class="covered" data-hits="118" data-linenumber="56">
1020
+ <span class="hits">118</span>
1021
+
1022
+ <code class="ruby"> self.class.cascadence_order[cascadence_position+1]</code>
1023
+ </li>
1024
+
1025
+ <li class="never" data-hits="" data-linenumber="57">
1026
+
1027
+
1028
+ <code class="ruby"> end</code>
1029
+ </li>
1030
+
1031
+ <li class="never" data-hits="" data-linenumber="58">
1032
+
1033
+
1034
+ <code class="ruby"></code>
1035
+ </li>
1036
+
1037
+ <li class="covered" data-hits="1" data-linenumber="59">
1038
+ <span class="hits">1</span>
1039
+
1040
+ <code class="ruby"> private</code>
1041
+ </li>
1042
+
1043
+ <li class="never" data-hits="" data-linenumber="60">
1044
+
1045
+
1046
+ <code class="ruby"></code>
1047
+ </li>
1048
+
1049
+ <li class="covered" data-hits="1" data-linenumber="61">
1050
+ <span class="hits">1</span>
1051
+
1052
+ <code class="ruby"> def _cascadence_end?</code>
1053
+ </li>
1054
+
1055
+ <li class="covered" data-hits="82" data-linenumber="62">
1056
+ <span class="hits">82</span>
1057
+
1058
+ <code class="ruby"> return false if cascadence_position.nil?</code>
1059
+ </li>
1060
+
1061
+ <li class="covered" data-hits="66" data-linenumber="63">
1062
+ <span class="hits">66</span>
1063
+
1064
+ <code class="ruby"> cascadence_position &gt;= self.class.cascadence_order.count - 1</code>
1065
+ </li>
1066
+
1067
+ <li class="never" data-hits="" data-linenumber="64">
1068
+
1069
+
1070
+ <code class="ruby"> end</code>
1071
+ </li>
1072
+
1073
+ <li class="never" data-hits="" data-linenumber="65">
1074
+
1075
+
1076
+ <code class="ruby"></code>
1077
+ </li>
1078
+
1079
+ <li class="covered" data-hits="1" data-linenumber="66">
1080
+ <span class="hits">1</span>
1081
+
1082
+ <code class="ruby"> def _increment_cascadence</code>
1083
+ </li>
1084
+
1085
+ <li class="covered" data-hits="78" data-linenumber="67">
1086
+ <span class="hits">78</span>
1087
+
1088
+ <code class="ruby"> if @cascadence_position.nil?</code>
1089
+ </li>
1090
+
1091
+ <li class="covered" data-hits="21" data-linenumber="68">
1092
+ <span class="hits">21</span>
1093
+
1094
+ <code class="ruby"> @cascadence_position = 0</code>
1095
+ </li>
1096
+
1097
+ <li class="never" data-hits="" data-linenumber="69">
1098
+
1099
+
1100
+ <code class="ruby"> else</code>
1101
+ </li>
1102
+
1103
+ <li class="covered" data-hits="57" data-linenumber="70">
1104
+ <span class="hits">57</span>
1105
+
1106
+ <code class="ruby"> @cascadence_position += 1</code>
1107
+ </li>
1108
+
1109
+ <li class="never" data-hits="" data-linenumber="71">
1110
+
1111
+
1112
+ <code class="ruby"> end</code>
1113
+ </li>
1114
+
1115
+ <li class="never" data-hits="" data-linenumber="72">
1116
+
1117
+
1118
+ <code class="ruby"> end</code>
1119
+ </li>
1120
+
1121
+ <li class="never" data-hits="" data-linenumber="73">
1122
+
1123
+
1124
+ <code class="ruby"></code>
1125
+ </li>
1126
+
1127
+ <li class="covered" data-hits="1" data-linenumber="74">
1128
+ <span class="hits">1</span>
1129
+
1130
+ <code class="ruby"> def _debug_helper</code>
1131
+ </li>
1132
+
1133
+ <li class="covered" data-hits="82" data-linenumber="75">
1134
+ <span class="hits">82</span>
1135
+
1136
+ <code class="ruby"> @debug_counter ||= 0</code>
1137
+ </li>
1138
+
1139
+ <li class="covered" data-hits="82" data-linenumber="76">
1140
+ <span class="hits">82</span>
1141
+
1142
+ <code class="ruby"> @debug_counter += 1</code>
1143
+ </li>
1144
+
1145
+ <li class="covered" data-hits="82" data-linenumber="77">
1146
+ <span class="hits">82</span>
1147
+
1148
+ <code class="ruby"> throw &quot;Recursion Limit Reached! cascadence_position: #{cascadence_position} --&gt; #{next_step_name}&quot; if 100 &lt; @debug_counter</code>
1149
+ </li>
1150
+
1151
+ <li class="never" data-hits="" data-linenumber="78">
1152
+
1153
+
1154
+ <code class="ruby"> end</code>
1155
+ </li>
1156
+
1157
+ <li class="never" data-hits="" data-linenumber="79">
1158
+
1159
+
1160
+ <code class="ruby"> end</code>
1161
+ </li>
1162
+
1163
+ <li class="never" data-hits="" data-linenumber="80">
1164
+
1165
+
1166
+ <code class="ruby"></code>
1167
+ </li>
1168
+
1169
+ <li class="never" data-hits="" data-linenumber="81">
1170
+
1171
+
1172
+ <code class="ruby">end</code>
1173
+ </li>
1174
+
1175
+ </ol>
1176
+ </pre>
1177
+ </div>
1178
+
1179
+ <div class="source_table" id="8d4a4aeeab065c42dc5836ee4eae8da23dd6ece3">
1180
+ <div class="header">
1181
+ <h3>spec/cascadence/flow_spec.rb</h3>
1182
+ <h4><span class="green">100.0 %</span> covered</h4>
1183
+ <div>
1184
+ <b>30</b> relevant lines.
1185
+ <span class="green"><b>30</b> lines covered</span> and
1186
+ <span class="red"><b>0</b> lines missed.</span>
1187
+ </div>
1188
+ </div>
1189
+
1190
+ <pre>
1191
+ <ol>
1192
+
1193
+ <li class="covered" data-hits="1" data-linenumber="1">
1194
+ <span class="hits">1</span>
1195
+
1196
+ <code class="ruby">require 'spec_helper'</code>
1197
+ </li>
1198
+
1199
+ <li class="never" data-hits="" data-linenumber="2">
1200
+
1201
+
1202
+ <code class="ruby"></code>
1203
+ </li>
1204
+
1205
+ <li class="covered" data-hits="1" data-linenumber="3">
1206
+ <span class="hits">1</span>
1207
+
1208
+ <code class="ruby">class FlowTest &lt; Cascadence::Flow</code>
1209
+ </li>
1210
+
1211
+ <li class="never" data-hits="" data-linenumber="4">
1212
+
1213
+
1214
+ <code class="ruby"></code>
1215
+ </li>
1216
+
1217
+ <li class="covered" data-hits="1" data-linenumber="5">
1218
+ <span class="hits">1</span>
1219
+
1220
+ <code class="ruby"> cascading_order :step1, :step2, :step3, :step4</code>
1221
+ </li>
1222
+
1223
+ <li class="never" data-hits="" data-linenumber="6">
1224
+
1225
+
1226
+ <code class="ruby"></code>
1227
+ </li>
1228
+
1229
+ <li class="covered" data-hits="1" data-linenumber="7">
1230
+ <span class="hits">1</span>
1231
+
1232
+ <code class="ruby"> def initialize</code>
1233
+ </li>
1234
+
1235
+ <li class="covered" data-hits="4" data-linenumber="8">
1236
+ <span class="hits">4</span>
1237
+
1238
+ <code class="ruby"> self.state = &quot;initialized&quot;</code>
1239
+ </li>
1240
+
1241
+ <li class="never" data-hits="" data-linenumber="9">
1242
+
1243
+
1244
+ <code class="ruby"> end</code>
1245
+ </li>
1246
+
1247
+ <li class="never" data-hits="" data-linenumber="10">
1248
+
1249
+
1250
+ <code class="ruby"></code>
1251
+ </li>
1252
+
1253
+ <li class="covered" data-hits="1" data-linenumber="11">
1254
+ <span class="hits">1</span>
1255
+
1256
+ <code class="ruby"> def step1</code>
1257
+ </li>
1258
+
1259
+ <li class="covered" data-hits="1" data-linenumber="12">
1260
+ <span class="hits">1</span>
1261
+
1262
+ <code class="ruby"> self.state += &quot;-step1&quot;</code>
1263
+ </li>
1264
+
1265
+ <li class="never" data-hits="" data-linenumber="13">
1266
+
1267
+
1268
+ <code class="ruby"> end</code>
1269
+ </li>
1270
+
1271
+ <li class="never" data-hits="" data-linenumber="14">
1272
+
1273
+
1274
+ <code class="ruby"></code>
1275
+ </li>
1276
+
1277
+ <li class="covered" data-hits="1" data-linenumber="15">
1278
+ <span class="hits">1</span>
1279
+
1280
+ <code class="ruby"> def step2</code>
1281
+ </li>
1282
+
1283
+ <li class="covered" data-hits="1" data-linenumber="16">
1284
+ <span class="hits">1</span>
1285
+
1286
+ <code class="ruby"> self.state += &quot;-step2&quot;</code>
1287
+ </li>
1288
+
1289
+ <li class="never" data-hits="" data-linenumber="17">
1290
+
1291
+
1292
+ <code class="ruby"> end</code>
1293
+ </li>
1294
+
1295
+ <li class="never" data-hits="" data-linenumber="18">
1296
+
1297
+
1298
+ <code class="ruby"></code>
1299
+ </li>
1300
+
1301
+ <li class="covered" data-hits="1" data-linenumber="19">
1302
+ <span class="hits">1</span>
1303
+
1304
+ <code class="ruby"> def step3</code>
1305
+ </li>
1306
+
1307
+ <li class="covered" data-hits="1" data-linenumber="20">
1308
+ <span class="hits">1</span>
1309
+
1310
+ <code class="ruby"> self.state += &quot;-step3&quot;</code>
1311
+ </li>
1312
+
1313
+ <li class="never" data-hits="" data-linenumber="21">
1314
+
1315
+
1316
+ <code class="ruby"> end</code>
1317
+ </li>
1318
+
1319
+ <li class="never" data-hits="" data-linenumber="22">
1320
+
1321
+
1322
+ <code class="ruby"></code>
1323
+ </li>
1324
+
1325
+ <li class="covered" data-hits="1" data-linenumber="23">
1326
+ <span class="hits">1</span>
1327
+
1328
+ <code class="ruby"> def step4</code>
1329
+ </li>
1330
+
1331
+ <li class="covered" data-hits="1" data-linenumber="24">
1332
+ <span class="hits">1</span>
1333
+
1334
+ <code class="ruby"> self.state += &quot;-step4&quot;</code>
1335
+ </li>
1336
+
1337
+ <li class="never" data-hits="" data-linenumber="25">
1338
+
1339
+
1340
+ <code class="ruby"> end</code>
1341
+ </li>
1342
+
1343
+ <li class="never" data-hits="" data-linenumber="26">
1344
+
1345
+
1346
+ <code class="ruby"></code>
1347
+ </li>
1348
+
1349
+ <li class="never" data-hits="" data-linenumber="27">
1350
+
1351
+
1352
+ <code class="ruby">end</code>
1353
+ </li>
1354
+
1355
+ <li class="never" data-hits="" data-linenumber="28">
1356
+
1357
+
1358
+ <code class="ruby"></code>
1359
+ </li>
1360
+
1361
+ <li class="covered" data-hits="1" data-linenumber="29">
1362
+ <span class="hits">1</span>
1363
+
1364
+ <code class="ruby">describe Cascadence::Flow do</code>
1365
+ </li>
1366
+
1367
+ <li class="never" data-hits="" data-linenumber="30">
1368
+
1369
+
1370
+ <code class="ruby"></code>
1371
+ </li>
1372
+
1373
+ <li class="covered" data-hits="1" data-linenumber="31">
1374
+ <span class="hits">1</span>
1375
+
1376
+ <code class="ruby"> before :each do</code>
1377
+ </li>
1378
+
1379
+ <li class="covered" data-hits="4" data-linenumber="32">
1380
+ <span class="hits">4</span>
1381
+
1382
+ <code class="ruby"> @flow = FlowTest.new</code>
1383
+ </li>
1384
+
1385
+ <li class="never" data-hits="" data-linenumber="33">
1386
+
1387
+
1388
+ <code class="ruby"> end</code>
1389
+ </li>
1390
+
1391
+ <li class="never" data-hits="" data-linenumber="34">
1392
+
1393
+
1394
+ <code class="ruby"></code>
1395
+ </li>
1396
+
1397
+ <li class="covered" data-hits="1" data-linenumber="35">
1398
+ <span class="hits">1</span>
1399
+
1400
+ <code class="ruby"> describe &quot;sanity&quot; do</code>
1401
+ </li>
1402
+
1403
+ <li class="never" data-hits="" data-linenumber="36">
1404
+
1405
+
1406
+ <code class="ruby"></code>
1407
+ </li>
1408
+
1409
+ <li class="covered" data-hits="1" data-linenumber="37">
1410
+ <span class="hits">1</span>
1411
+
1412
+ <code class="ruby"> it &quot;should be an instance of flowtest&quot; do</code>
1413
+ </li>
1414
+
1415
+ <li class="covered" data-hits="1" data-linenumber="38">
1416
+ <span class="hits">1</span>
1417
+
1418
+ <code class="ruby"> @flow.class.should eq FlowTest</code>
1419
+ </li>
1420
+
1421
+ <li class="never" data-hits="" data-linenumber="39">
1422
+
1423
+
1424
+ <code class="ruby"> end</code>
1425
+ </li>
1426
+
1427
+ <li class="never" data-hits="" data-linenumber="40">
1428
+
1429
+
1430
+ <code class="ruby"></code>
1431
+ </li>
1432
+
1433
+ <li class="covered" data-hits="1" data-linenumber="41">
1434
+ <span class="hits">1</span>
1435
+
1436
+ <code class="ruby"> it &quot;should respond to state&quot; do</code>
1437
+ </li>
1438
+
1439
+ <li class="covered" data-hits="1" data-linenumber="42">
1440
+ <span class="hits">1</span>
1441
+
1442
+ <code class="ruby"> @flow.should respond_to :state</code>
1443
+ </li>
1444
+
1445
+ <li class="covered" data-hits="1" data-linenumber="43">
1446
+ <span class="hits">1</span>
1447
+
1448
+ <code class="ruby"> @flow.should respond_to :state=</code>
1449
+ </li>
1450
+
1451
+ <li class="covered" data-hits="1" data-linenumber="44">
1452
+ <span class="hits">1</span>
1453
+
1454
+ <code class="ruby"> @flow.state.should eq &quot;initialized&quot;</code>
1455
+ </li>
1456
+
1457
+ <li class="never" data-hits="" data-linenumber="45">
1458
+
1459
+
1460
+ <code class="ruby"> end </code>
1461
+ </li>
1462
+
1463
+ <li class="never" data-hits="" data-linenumber="46">
1464
+
1465
+
1466
+ <code class="ruby"></code>
1467
+ </li>
1468
+
1469
+ <li class="covered" data-hits="1" data-linenumber="47">
1470
+ <span class="hits">1</span>
1471
+
1472
+ <code class="ruby"> it &quot;should be an instance of cascadence::flow&quot; do</code>
1473
+ </li>
1474
+
1475
+ <li class="covered" data-hits="1" data-linenumber="48">
1476
+ <span class="hits">1</span>
1477
+
1478
+ <code class="ruby"> FlowTest.superclass.should eq Cascadence::Flow</code>
1479
+ </li>
1480
+
1481
+ <li class="never" data-hits="" data-linenumber="49">
1482
+
1483
+
1484
+ <code class="ruby"> end</code>
1485
+ </li>
1486
+
1487
+ <li class="never" data-hits="" data-linenumber="50">
1488
+
1489
+
1490
+ <code class="ruby"></code>
1491
+ </li>
1492
+
1493
+ <li class="never" data-hits="" data-linenumber="51">
1494
+
1495
+
1496
+ <code class="ruby"> end</code>
1497
+ </li>
1498
+
1499
+ <li class="never" data-hits="" data-linenumber="52">
1500
+
1501
+
1502
+ <code class="ruby"></code>
1503
+ </li>
1504
+
1505
+ <li class="covered" data-hits="1" data-linenumber="53">
1506
+ <span class="hits">1</span>
1507
+
1508
+ <code class="ruby"> describe &quot;run states&quot; do</code>
1509
+ </li>
1510
+
1511
+ <li class="never" data-hits="" data-linenumber="54">
1512
+
1513
+
1514
+ <code class="ruby"></code>
1515
+ </li>
1516
+
1517
+ <li class="covered" data-hits="2" data-linenumber="55">
1518
+ <span class="hits">2</span>
1519
+
1520
+ <code class="ruby"> before(:each) { @expected = &quot;initialized-step1-step2-step3-step4&quot; }</code>
1521
+ </li>
1522
+
1523
+ <li class="covered" data-hits="2" data-linenumber="56">
1524
+ <span class="hits">2</span>
1525
+
1526
+ <code class="ruby"> let(:actual) { @flow.run_states }</code>
1527
+ </li>
1528
+
1529
+ <li class="never" data-hits="" data-linenumber="57">
1530
+
1531
+
1532
+ <code class="ruby"></code>
1533
+ </li>
1534
+
1535
+ <li class="covered" data-hits="1" data-linenumber="58">
1536
+ <span class="hits">1</span>
1537
+
1538
+ <code class="ruby"> it &quot;should run all four states in the specified cascading order&quot; do</code>
1539
+ </li>
1540
+
1541
+ <li class="covered" data-hits="1" data-linenumber="59">
1542
+ <span class="hits">1</span>
1543
+
1544
+ <code class="ruby"> actual.state.should eq @expected</code>
1545
+ </li>
1546
+
1547
+ <li class="never" data-hits="" data-linenumber="60">
1548
+
1549
+
1550
+ <code class="ruby"> end</code>
1551
+ </li>
1552
+
1553
+ <li class="never" data-hits="" data-linenumber="61">
1554
+
1555
+
1556
+ <code class="ruby"></code>
1557
+ </li>
1558
+
1559
+ <li class="never" data-hits="" data-linenumber="62">
1560
+
1561
+
1562
+ <code class="ruby"> end</code>
1563
+ </li>
1564
+
1565
+ <li class="never" data-hits="" data-linenumber="63">
1566
+
1567
+
1568
+ <code class="ruby"></code>
1569
+ </li>
1570
+
1571
+ <li class="never" data-hits="" data-linenumber="64">
1572
+
1573
+
1574
+ <code class="ruby">end</code>
1575
+ </li>
1576
+
1577
+ </ol>
1578
+ </pre>
1579
+ </div>
1580
+
1581
+ <div class="source_table" id="cf7d59838ed62fd3d56a8782db131b901bb3f748">
1582
+ <div class="header">
1583
+ <h3>spec/cascadence/fork_merge_spec.rb</h3>
1584
+ <h4><span class="green">100.0 %</span> covered</h4>
1585
+ <div>
1586
+ <b>43</b> relevant lines.
1587
+ <span class="green"><b>43</b> lines covered</span> and
1588
+ <span class="red"><b>0</b> lines missed.</span>
1589
+ </div>
1590
+ </div>
1591
+
1592
+ <pre>
1593
+ <ol>
1594
+
1595
+ <li class="covered" data-hits="1" data-linenumber="1">
1596
+ <span class="hits">1</span>
1597
+
1598
+ <code class="ruby">require 'spec_helper'</code>
1599
+ </li>
1600
+
1601
+ <li class="never" data-hits="" data-linenumber="2">
1602
+
1603
+
1604
+ <code class="ruby"></code>
1605
+ </li>
1606
+
1607
+ <li class="covered" data-hits="1" data-linenumber="3">
1608
+ <span class="hits">1</span>
1609
+
1610
+ <code class="ruby">describe Cascadence::Flow do</code>
1611
+ </li>
1612
+
1613
+ <li class="covered" data-hits="1" data-linenumber="4">
1614
+ <span class="hits">1</span>
1615
+
1616
+ <code class="ruby"> let(:euphrates) do</code>
1617
+ </li>
1618
+
1619
+ <li class="covered" data-hits="5" data-linenumber="5">
1620
+ <span class="hits">5</span>
1621
+
1622
+ <code class="ruby"> Class.new( Cascadence::Flow ) do</code>
1623
+ </li>
1624
+
1625
+ <li class="covered" data-hits="5" data-linenumber="6">
1626
+ <span class="hits">5</span>
1627
+
1628
+ <code class="ruby"> cascading_order :eden, :babylon, :gulf</code>
1629
+ </li>
1630
+
1631
+ <li class="never" data-hits="" data-linenumber="7">
1632
+
1633
+
1634
+ <code class="ruby"></code>
1635
+ </li>
1636
+
1637
+ <li class="covered" data-hits="5" data-linenumber="8">
1638
+ <span class="hits">5</span>
1639
+
1640
+ <code class="ruby"> def initialize</code>
1641
+ </li>
1642
+
1643
+ <li class="covered" data-hits="3" data-linenumber="9">
1644
+ <span class="hits">3</span>
1645
+
1646
+ <code class="ruby"> self.state = &quot;created&quot;</code>
1647
+ </li>
1648
+
1649
+ <li class="never" data-hits="" data-linenumber="10">
1650
+
1651
+
1652
+ <code class="ruby"> end</code>
1653
+ </li>
1654
+
1655
+ <li class="never" data-hits="" data-linenumber="11">
1656
+
1657
+
1658
+ <code class="ruby"></code>
1659
+ </li>
1660
+
1661
+ <li class="covered" data-hits="5" data-linenumber="12">
1662
+ <span class="hits">5</span>
1663
+
1664
+ <code class="ruby"> def eden</code>
1665
+ </li>
1666
+
1667
+ <li class="covered" data-hits="3" data-linenumber="13">
1668
+ <span class="hits">3</span>
1669
+
1670
+ <code class="ruby"> self.state += &quot;-innocence&quot;</code>
1671
+ </li>
1672
+
1673
+ <li class="never" data-hits="" data-linenumber="14">
1674
+
1675
+
1676
+ <code class="ruby"> end</code>
1677
+ </li>
1678
+
1679
+ <li class="never" data-hits="" data-linenumber="15">
1680
+
1681
+
1682
+ <code class="ruby"></code>
1683
+ </li>
1684
+
1685
+ <li class="covered" data-hits="5" data-linenumber="16">
1686
+ <span class="hits">5</span>
1687
+
1688
+ <code class="ruby"> def babylon</code>
1689
+ </li>
1690
+
1691
+ <li class="covered" data-hits="1" data-linenumber="17">
1692
+ <span class="hits">1</span>
1693
+
1694
+ <code class="ruby"> self.state += &quot;-prosperity&quot;</code>
1695
+ </li>
1696
+
1697
+ <li class="never" data-hits="" data-linenumber="18">
1698
+
1699
+
1700
+ <code class="ruby"> end</code>
1701
+ </li>
1702
+
1703
+ <li class="never" data-hits="" data-linenumber="19">
1704
+
1705
+
1706
+ <code class="ruby"></code>
1707
+ </li>
1708
+
1709
+ <li class="covered" data-hits="5" data-linenumber="20">
1710
+ <span class="hits">5</span>
1711
+
1712
+ <code class="ruby"> def gulf</code>
1713
+ </li>
1714
+
1715
+ <li class="covered" data-hits="3" data-linenumber="21">
1716
+ <span class="hits">3</span>
1717
+
1718
+ <code class="ruby"> self.state += &quot;-downfall&quot;</code>
1719
+ </li>
1720
+
1721
+ <li class="never" data-hits="" data-linenumber="22">
1722
+
1723
+
1724
+ <code class="ruby"> end</code>
1725
+ </li>
1726
+
1727
+ <li class="never" data-hits="" data-linenumber="23">
1728
+
1729
+
1730
+ <code class="ruby"></code>
1731
+ </li>
1732
+
1733
+ <li class="never" data-hits="" data-linenumber="24">
1734
+
1735
+
1736
+ <code class="ruby"> end</code>
1737
+ </li>
1738
+
1739
+ <li class="never" data-hits="" data-linenumber="25">
1740
+
1741
+
1742
+ <code class="ruby"> end</code>
1743
+ </li>
1744
+
1745
+ <li class="never" data-hits="" data-linenumber="26">
1746
+
1747
+
1748
+ <code class="ruby"></code>
1749
+ </li>
1750
+
1751
+ <li class="covered" data-hits="1" data-linenumber="27">
1752
+ <span class="hits">1</span>
1753
+
1754
+ <code class="ruby"> let(:tigris) do</code>
1755
+ </li>
1756
+
1757
+ <li class="covered" data-hits="3" data-linenumber="28">
1758
+ <span class="hits">3</span>
1759
+
1760
+ <code class="ruby"> Class.new( euphrates ) do</code>
1761
+ </li>
1762
+
1763
+ <li class="covered" data-hits="3" data-linenumber="29">
1764
+ <span class="hits">3</span>
1765
+
1766
+ <code class="ruby"> fork_after :eden</code>
1767
+ </li>
1768
+
1769
+ <li class="covered" data-hits="3" data-linenumber="30">
1770
+ <span class="hits">3</span>
1771
+
1772
+ <code class="ruby"> merge_before :gulf</code>
1773
+ </li>
1774
+
1775
+ <li class="covered" data-hits="3" data-linenumber="31">
1776
+ <span class="hits">3</span>
1777
+
1778
+ <code class="ruby"> cascading_order :sumer, :israel</code>
1779
+ </li>
1780
+
1781
+ <li class="covered" data-hits="3" data-linenumber="32">
1782
+ <span class="hits">3</span>
1783
+
1784
+ <code class="ruby"> def sumer</code>
1785
+ </li>
1786
+
1787
+ <li class="covered" data-hits="2" data-linenumber="33">
1788
+ <span class="hits">2</span>
1789
+
1790
+ <code class="ruby"> self.state += &quot;-discovery&quot;</code>
1791
+ </li>
1792
+
1793
+ <li class="never" data-hits="" data-linenumber="34">
1794
+
1795
+
1796
+ <code class="ruby"> end</code>
1797
+ </li>
1798
+
1799
+ <li class="never" data-hits="" data-linenumber="35">
1800
+
1801
+
1802
+ <code class="ruby"></code>
1803
+ </li>
1804
+
1805
+ <li class="covered" data-hits="3" data-linenumber="36">
1806
+ <span class="hits">3</span>
1807
+
1808
+ <code class="ruby"> def israel</code>
1809
+ </li>
1810
+
1811
+ <li class="covered" data-hits="2" data-linenumber="37">
1812
+ <span class="hits">2</span>
1813
+
1814
+ <code class="ruby"> self.state += &quot;-arrogance&quot;</code>
1815
+ </li>
1816
+
1817
+ <li class="never" data-hits="" data-linenumber="38">
1818
+
1819
+
1820
+ <code class="ruby"> end</code>
1821
+ </li>
1822
+
1823
+ <li class="never" data-hits="" data-linenumber="39">
1824
+
1825
+
1826
+ <code class="ruby"> end</code>
1827
+ </li>
1828
+
1829
+ <li class="never" data-hits="" data-linenumber="40">
1830
+
1831
+
1832
+ <code class="ruby"> end</code>
1833
+ </li>
1834
+
1835
+ <li class="never" data-hits="" data-linenumber="41">
1836
+
1837
+
1838
+ <code class="ruby"></code>
1839
+ </li>
1840
+
1841
+ <li class="covered" data-hits="1" data-linenumber="42">
1842
+ <span class="hits">1</span>
1843
+
1844
+ <code class="ruby"> describe &quot;#cascadence_order&quot; do</code>
1845
+ </li>
1846
+
1847
+ <li class="never" data-hits="" data-linenumber="43">
1848
+
1849
+
1850
+ <code class="ruby"></code>
1851
+ </li>
1852
+
1853
+ <li class="covered" data-hits="1" data-linenumber="44">
1854
+ <span class="hits">1</span>
1855
+
1856
+ <code class="ruby"> context &quot;parent&quot; do</code>
1857
+ </li>
1858
+
1859
+ <li class="covered" data-hits="2" data-linenumber="45">
1860
+ <span class="hits">2</span>
1861
+
1862
+ <code class="ruby"> subject { euphrates.cascadence_order }</code>
1863
+ </li>
1864
+
1865
+ <li class="never" data-hits="" data-linenumber="46">
1866
+
1867
+
1868
+ <code class="ruby"></code>
1869
+ </li>
1870
+
1871
+ <li class="covered" data-hits="1" data-linenumber="47">
1872
+ <span class="hits">1</span>
1873
+
1874
+ <code class="ruby"> it &quot;should remain unchanged from what it was&quot; do</code>
1875
+ </li>
1876
+
1877
+ <li class="covered" data-hits="1" data-linenumber="48">
1878
+ <span class="hits">1</span>
1879
+
1880
+ <code class="ruby"> should eq [:eden, :babylon, :gulf]</code>
1881
+ </li>
1882
+
1883
+ <li class="never" data-hits="" data-linenumber="49">
1884
+
1885
+
1886
+ <code class="ruby"> end</code>
1887
+ </li>
1888
+
1889
+ <li class="never" data-hits="" data-linenumber="50">
1890
+
1891
+
1892
+ <code class="ruby"> end</code>
1893
+ </li>
1894
+
1895
+ <li class="never" data-hits="" data-linenumber="51">
1896
+
1897
+
1898
+ <code class="ruby"></code>
1899
+ </li>
1900
+
1901
+ <li class="covered" data-hits="1" data-linenumber="52">
1902
+ <span class="hits">1</span>
1903
+
1904
+ <code class="ruby"> context &quot;child&quot; do</code>
1905
+ </li>
1906
+
1907
+ <li class="covered" data-hits="2" data-linenumber="53">
1908
+ <span class="hits">2</span>
1909
+
1910
+ <code class="ruby"> subject { tigris.cascadence_order }</code>
1911
+ </li>
1912
+
1913
+ <li class="never" data-hits="" data-linenumber="54">
1914
+
1915
+
1916
+ <code class="ruby"></code>
1917
+ </li>
1918
+
1919
+ <li class="covered" data-hits="1" data-linenumber="55">
1920
+ <span class="hits">1</span>
1921
+
1922
+ <code class="ruby"> it &quot;should have been forked from the parent cascadence order&quot; do</code>
1923
+ </li>
1924
+
1925
+ <li class="covered" data-hits="1" data-linenumber="56">
1926
+ <span class="hits">1</span>
1927
+
1928
+ <code class="ruby"> should eq [:eden, :sumer, :israel, :gulf]</code>
1929
+ </li>
1930
+
1931
+ <li class="never" data-hits="" data-linenumber="57">
1932
+
1933
+
1934
+ <code class="ruby"> end</code>
1935
+ </li>
1936
+
1937
+ <li class="never" data-hits="" data-linenumber="58">
1938
+
1939
+
1940
+ <code class="ruby"></code>
1941
+ </li>
1942
+
1943
+ <li class="never" data-hits="" data-linenumber="59">
1944
+
1945
+
1946
+ <code class="ruby"> end</code>
1947
+ </li>
1948
+
1949
+ <li class="never" data-hits="" data-linenumber="60">
1950
+
1951
+
1952
+ <code class="ruby"> end</code>
1953
+ </li>
1954
+
1955
+ <li class="never" data-hits="" data-linenumber="61">
1956
+
1957
+
1958
+ <code class="ruby"></code>
1959
+ </li>
1960
+
1961
+ <li class="covered" data-hits="1" data-linenumber="62">
1962
+ <span class="hits">1</span>
1963
+
1964
+ <code class="ruby"> describe &quot;#run_state&quot; do</code>
1965
+ </li>
1966
+
1967
+ <li class="never" data-hits="" data-linenumber="63">
1968
+
1969
+
1970
+ <code class="ruby"></code>
1971
+ </li>
1972
+
1973
+ <li class="covered" data-hits="1" data-linenumber="64">
1974
+ <span class="hits">1</span>
1975
+
1976
+ <code class="ruby"> describe &quot;parent&quot; do</code>
1977
+ </li>
1978
+
1979
+ <li class="covered" data-hits="2" data-linenumber="65">
1980
+ <span class="hits">2</span>
1981
+
1982
+ <code class="ruby"> subject { euphrates.new.run_states.state }</code>
1983
+ </li>
1984
+
1985
+ <li class="never" data-hits="" data-linenumber="66">
1986
+
1987
+
1988
+ <code class="ruby"></code>
1989
+ </li>
1990
+
1991
+ <li class="covered" data-hits="1" data-linenumber="67">
1992
+ <span class="hits">1</span>
1993
+
1994
+ <code class="ruby"> it &quot;should generate the expected state without regard to forks&quot; do</code>
1995
+ </li>
1996
+
1997
+ <li class="covered" data-hits="1" data-linenumber="68">
1998
+ <span class="hits">1</span>
1999
+
2000
+ <code class="ruby"> should eq &quot;created-innocence-prosperity-downfall&quot;</code>
2001
+ </li>
2002
+
2003
+ <li class="never" data-hits="" data-linenumber="69">
2004
+
2005
+
2006
+ <code class="ruby"> end</code>
2007
+ </li>
2008
+
2009
+ <li class="never" data-hits="" data-linenumber="70">
2010
+
2011
+
2012
+ <code class="ruby"> end</code>
2013
+ </li>
2014
+
2015
+ <li class="never" data-hits="" data-linenumber="71">
2016
+
2017
+
2018
+ <code class="ruby"></code>
2019
+ </li>
2020
+
2021
+ <li class="covered" data-hits="1" data-linenumber="72">
2022
+ <span class="hits">1</span>
2023
+
2024
+ <code class="ruby"> describe &quot;child&quot; do</code>
2025
+ </li>
2026
+
2027
+ <li class="covered" data-hits="2" data-linenumber="73">
2028
+ <span class="hits">2</span>
2029
+
2030
+ <code class="ruby"> subject { tigris.new.run_states.state }</code>
2031
+ </li>
2032
+
2033
+ <li class="never" data-hits="" data-linenumber="74">
2034
+
2035
+
2036
+ <code class="ruby"></code>
2037
+ </li>
2038
+
2039
+ <li class="covered" data-hits="1" data-linenumber="75">
2040
+ <span class="hits">1</span>
2041
+
2042
+ <code class="ruby"> it &quot;should have the right states to run&quot; do</code>
2043
+ </li>
2044
+
2045
+ <li class="covered" data-hits="1" data-linenumber="76">
2046
+ <span class="hits">1</span>
2047
+
2048
+ <code class="ruby"> tigris.cascadence_order.should eq [:eden, :sumer, :israel, :gulf]</code>
2049
+ </li>
2050
+
2051
+ <li class="covered" data-hits="1" data-linenumber="77">
2052
+ <span class="hits">1</span>
2053
+
2054
+ <code class="ruby"> tigris.new.run_states.state.should eq &quot;created-innocence-discovery-arrogance-downfall&quot;</code>
2055
+ </li>
2056
+
2057
+ <li class="never" data-hits="" data-linenumber="78">
2058
+
2059
+
2060
+ <code class="ruby"> end</code>
2061
+ </li>
2062
+
2063
+ <li class="covered" data-hits="1" data-linenumber="79">
2064
+ <span class="hits">1</span>
2065
+
2066
+ <code class="ruby"> it &quot;should generate the expected state after succesful forking from the parent&quot; do</code>
2067
+ </li>
2068
+
2069
+ <li class="covered" data-hits="1" data-linenumber="80">
2070
+ <span class="hits">1</span>
2071
+
2072
+ <code class="ruby"> should eq &quot;created-innocence-discovery-arrogance-downfall&quot;</code>
2073
+ </li>
2074
+
2075
+ <li class="never" data-hits="" data-linenumber="81">
2076
+
2077
+
2078
+ <code class="ruby"> end</code>
2079
+ </li>
2080
+
2081
+ <li class="never" data-hits="" data-linenumber="82">
2082
+
2083
+
2084
+ <code class="ruby"> end</code>
2085
+ </li>
2086
+
2087
+ <li class="never" data-hits="" data-linenumber="83">
2088
+
2089
+
2090
+ <code class="ruby"></code>
2091
+ </li>
2092
+
2093
+ <li class="never" data-hits="" data-linenumber="84">
2094
+
2095
+
2096
+ <code class="ruby"> end</code>
2097
+ </li>
2098
+
2099
+ <li class="never" data-hits="" data-linenumber="85">
2100
+
2101
+
2102
+ <code class="ruby"></code>
2103
+ </li>
2104
+
2105
+ <li class="never" data-hits="" data-linenumber="86">
2106
+
2107
+
2108
+ <code class="ruby">end </code>
2109
+ </li>
2110
+
2111
+ </ol>
2112
+ </pre>
2113
+ </div>
2114
+
2115
+ <div class="source_table" id="38975a168d1b95d4381368abf464952103185ab2">
2116
+ <div class="header">
2117
+ <h3>spec/cascadence/helper_spec.rb</h3>
2118
+ <h4><span class="green">100.0 %</span> covered</h4>
2119
+ <div>
2120
+ <b>52</b> relevant lines.
2121
+ <span class="green"><b>52</b> lines covered</span> and
2122
+ <span class="red"><b>0</b> lines missed.</span>
2123
+ </div>
2124
+ </div>
2125
+
2126
+ <pre>
2127
+ <ol>
2128
+
2129
+ <li class="covered" data-hits="1" data-linenumber="1">
2130
+ <span class="hits">1</span>
2131
+
2132
+ <code class="ruby">require 'spec_helper'</code>
2133
+ </li>
2134
+
2135
+ <li class="never" data-hits="" data-linenumber="2">
2136
+
2137
+
2138
+ <code class="ruby"></code>
2139
+ </li>
2140
+
2141
+ <li class="covered" data-hits="1" data-linenumber="3">
2142
+ <span class="hits">1</span>
2143
+
2144
+ <code class="ruby">describe Cascadence::Helper do</code>
2145
+ </li>
2146
+
2147
+ <li class="covered" data-hits="12" data-linenumber="4">
2148
+ <span class="hits">12</span>
2149
+
2150
+ <code class="ruby"> let(:api) { Cascadence::Helper }</code>
2151
+ </li>
2152
+
2153
+ <li class="never" data-hits="" data-linenumber="5">
2154
+
2155
+
2156
+ <code class="ruby"></code>
2157
+ </li>
2158
+
2159
+ <li class="covered" data-hits="1" data-linenumber="6">
2160
+ <span class="hits">1</span>
2161
+
2162
+ <code class="ruby"> describe &quot;#generate_tributary&quot; do</code>
2163
+ </li>
2164
+
2165
+ <li class="covered" data-hits="1" data-linenumber="7">
2166
+ <span class="hits">1</span>
2167
+
2168
+ <code class="ruby"> context &quot;standard usage&quot; do</code>
2169
+ </li>
2170
+
2171
+ <li class="covered" data-hits="1" data-linenumber="8">
2172
+ <span class="hits">1</span>
2173
+
2174
+ <code class="ruby"> before :each do</code>
2175
+ </li>
2176
+
2177
+ <li class="covered" data-hits="2" data-linenumber="9">
2178
+ <span class="hits">2</span>
2179
+
2180
+ <code class="ruby"> @arrays = [</code>
2181
+ </li>
2182
+
2183
+ <li class="never" data-hits="" data-linenumber="10">
2184
+
2185
+
2186
+ <code class="ruby"> [&quot;o&quot;,&quot;t&quot;] ,</code>
2187
+ </li>
2188
+
2189
+ <li class="never" data-hits="" data-linenumber="11">
2190
+
2191
+
2192
+ <code class="ruby"> [&quot;a&quot;,&quot;g&quot;] ,</code>
2193
+ </li>
2194
+
2195
+ <li class="never" data-hits="" data-linenumber="12">
2196
+
2197
+
2198
+ <code class="ruby"> [&quot;f&quot;,&quot;b&quot;,&quot;c&quot;,&quot;g&quot;]</code>
2199
+ </li>
2200
+
2201
+ <li class="never" data-hits="" data-linenumber="13">
2202
+
2203
+
2204
+ <code class="ruby"> ]</code>
2205
+ </li>
2206
+
2207
+ <li class="covered" data-hits="2" data-linenumber="14">
2208
+ <span class="hits">2</span>
2209
+
2210
+ <code class="ruby"> @starts = [1]</code>
2211
+ </li>
2212
+
2213
+ <li class="covered" data-hits="2" data-linenumber="15">
2214
+ <span class="hits">2</span>
2215
+
2216
+ <code class="ruby"> @finishes = [2]</code>
2217
+ </li>
2218
+
2219
+ <li class="covered" data-hits="2" data-linenumber="16">
2220
+ <span class="hits">2</span>
2221
+
2222
+ <code class="ruby"> @expected = [&quot;f&quot;,&quot;a&quot;,&quot;g&quot;,&quot;g&quot;,&quot;o&quot;,&quot;t&quot;]</code>
2223
+ </li>
2224
+
2225
+ <li class="never" data-hits="" data-linenumber="17">
2226
+
2227
+
2228
+ <code class="ruby"> end</code>
2229
+ </li>
2230
+
2231
+ <li class="never" data-hits="" data-linenumber="18">
2232
+
2233
+
2234
+ <code class="ruby"></code>
2235
+ </li>
2236
+
2237
+ <li class="covered" data-hits="1" data-linenumber="19">
2238
+ <span class="hits">1</span>
2239
+
2240
+ <code class="ruby"> it &quot;should reduce the given array to the expected array&quot; do</code>
2241
+ </li>
2242
+
2243
+ <li class="covered" data-hits="1" data-linenumber="20">
2244
+ <span class="hits">1</span>
2245
+
2246
+ <code class="ruby"> api.generate_tributary(@arrays, @starts, @finishes).should eq @expected</code>
2247
+ </li>
2248
+
2249
+ <li class="never" data-hits="" data-linenumber="21">
2250
+
2251
+
2252
+ <code class="ruby"> end</code>
2253
+ </li>
2254
+
2255
+ <li class="never" data-hits="" data-linenumber="22">
2256
+
2257
+
2258
+ <code class="ruby"></code>
2259
+ </li>
2260
+
2261
+ <li class="covered" data-hits="1" data-linenumber="23">
2262
+ <span class="hits">1</span>
2263
+
2264
+ <code class="ruby"> it &quot;should work with simpler arrays also&quot; do</code>
2265
+ </li>
2266
+
2267
+ <li class="covered" data-hits="1" data-linenumber="24">
2268
+ <span class="hits">1</span>
2269
+
2270
+ <code class="ruby"> arrays = [</code>
2271
+ </li>
2272
+
2273
+ <li class="never" data-hits="" data-linenumber="25">
2274
+
2275
+
2276
+ <code class="ruby"> ['a','g','g','o'] ,</code>
2277
+ </li>
2278
+
2279
+ <li class="never" data-hits="" data-linenumber="26">
2280
+
2281
+
2282
+ <code class="ruby"> ['f','b','b','b','t']</code>
2283
+ </li>
2284
+
2285
+ <li class="never" data-hits="" data-linenumber="27">
2286
+
2287
+
2288
+ <code class="ruby"> ]</code>
2289
+ </li>
2290
+
2291
+ <li class="covered" data-hits="1" data-linenumber="28">
2292
+ <span class="hits">1</span>
2293
+
2294
+ <code class="ruby"> start = [1]</code>
2295
+ </li>
2296
+
2297
+ <li class="covered" data-hits="1" data-linenumber="29">
2298
+ <span class="hits">1</span>
2299
+
2300
+ <code class="ruby"> merge = [3]</code>
2301
+ </li>
2302
+
2303
+ <li class="covered" data-hits="1" data-linenumber="30">
2304
+ <span class="hits">1</span>
2305
+
2306
+ <code class="ruby"> api.generate_tributary(arrays, start, merge).should eq @expected</code>
2307
+ </li>
2308
+
2309
+ <li class="never" data-hits="" data-linenumber="31">
2310
+
2311
+
2312
+ <code class="ruby"> end</code>
2313
+ </li>
2314
+
2315
+ <li class="never" data-hits="" data-linenumber="32">
2316
+
2317
+
2318
+ <code class="ruby"> end</code>
2319
+ </li>
2320
+
2321
+ <li class="never" data-hits="" data-linenumber="33">
2322
+
2323
+
2324
+ <code class="ruby"></code>
2325
+ </li>
2326
+
2327
+ <li class="covered" data-hits="1" data-linenumber="34">
2328
+ <span class="hits">1</span>
2329
+
2330
+ <code class="ruby"> context &quot;weird input&quot; do</code>
2331
+ </li>
2332
+
2333
+ <li class="covered" data-hits="1" data-linenumber="35">
2334
+ <span class="hits">1</span>
2335
+
2336
+ <code class="ruby"> before :each do</code>
2337
+ </li>
2338
+
2339
+ <li class="covered" data-hits="3" data-linenumber="36">
2340
+ <span class="hits">3</span>
2341
+
2342
+ <code class="ruby"> @arrays = [</code>
2343
+ </li>
2344
+
2345
+ <li class="never" data-hits="" data-linenumber="37">
2346
+
2347
+
2348
+ <code class="ruby"> [&quot;o&quot;,&quot;t&quot;] ,</code>
2349
+ </li>
2350
+
2351
+ <li class="never" data-hits="" data-linenumber="38">
2352
+
2353
+
2354
+ <code class="ruby"> [&quot;a&quot;,&quot;g&quot;] ,</code>
2355
+ </li>
2356
+
2357
+ <li class="never" data-hits="" data-linenumber="39">
2358
+
2359
+
2360
+ <code class="ruby"> [&quot;f&quot;,&quot;b&quot;,&quot;c&quot;,&quot;g&quot;]</code>
2361
+ </li>
2362
+
2363
+ <li class="never" data-hits="" data-linenumber="40">
2364
+
2365
+
2366
+ <code class="ruby"> ]</code>
2367
+ </li>
2368
+
2369
+ <li class="covered" data-hits="3" data-linenumber="41">
2370
+ <span class="hits">3</span>
2371
+
2372
+ <code class="ruby"> @starts = [1]</code>
2373
+ </li>
2374
+
2375
+ <li class="covered" data-hits="3" data-linenumber="42">
2376
+ <span class="hits">3</span>
2377
+
2378
+ <code class="ruby"> @finishes = [2]</code>
2379
+ </li>
2380
+
2381
+ <li class="covered" data-hits="3" data-linenumber="43">
2382
+ <span class="hits">3</span>
2383
+
2384
+ <code class="ruby"> @expected = [&quot;f&quot;,&quot;a&quot;,&quot;g&quot;,&quot;g&quot;,&quot;o&quot;,&quot;t&quot;]</code>
2385
+ </li>
2386
+
2387
+ <li class="never" data-hits="" data-linenumber="44">
2388
+
2389
+
2390
+ <code class="ruby"> end</code>
2391
+ </li>
2392
+
2393
+ <li class="never" data-hits="" data-linenumber="45">
2394
+
2395
+
2396
+ <code class="ruby"></code>
2397
+ </li>
2398
+
2399
+ <li class="covered" data-hits="1" data-linenumber="46">
2400
+ <span class="hits">1</span>
2401
+
2402
+ <code class="ruby"> it &quot;should return the array as is&quot; do</code>
2403
+ </li>
2404
+
2405
+ <li class="covered" data-hits="1" data-linenumber="47">
2406
+ <span class="hits">1</span>
2407
+
2408
+ <code class="ruby"> api.generate_tributary([[1,2,3,4]]).should eq [1,2,3,4]</code>
2409
+ </li>
2410
+
2411
+ <li class="never" data-hits="" data-linenumber="48">
2412
+
2413
+
2414
+ <code class="ruby"> end</code>
2415
+ </li>
2416
+
2417
+ <li class="never" data-hits="" data-linenumber="49">
2418
+
2419
+
2420
+ <code class="ruby"></code>
2421
+ </li>
2422
+
2423
+ <li class="covered" data-hits="1" data-linenumber="50">
2424
+ <span class="hits">1</span>
2425
+
2426
+ <code class="ruby"> it &quot;should entirely ignore merge points if no fork points were specified&quot; do</code>
2427
+ </li>
2428
+
2429
+ <li class="covered" data-hits="1" data-linenumber="51">
2430
+ <span class="hits">1</span>
2431
+
2432
+ <code class="ruby"> api.generate_tributary(@arrays, [1], [23,234,23,23,3,2]).should eq @expected</code>
2433
+ </li>
2434
+
2435
+ <li class="never" data-hits="" data-linenumber="52">
2436
+
2437
+
2438
+ <code class="ruby"> end</code>
2439
+ </li>
2440
+
2441
+ <li class="never" data-hits="" data-linenumber="53">
2442
+
2443
+
2444
+ <code class="ruby"></code>
2445
+ </li>
2446
+
2447
+ <li class="covered" data-hits="1" data-linenumber="54">
2448
+ <span class="hits">1</span>
2449
+
2450
+ <code class="ruby"> it &quot;should entirely replace to the end if no merge points were specified&quot; do</code>
2451
+ </li>
2452
+
2453
+ <li class="covered" data-hits="1" data-linenumber="55">
2454
+ <span class="hits">1</span>
2455
+
2456
+ <code class="ruby"> arrays = [</code>
2457
+ </li>
2458
+
2459
+ <li class="never" data-hits="" data-linenumber="56">
2460
+
2461
+
2462
+ <code class="ruby"> &quot;I love eating food&quot;.split(&quot; &quot;) ,</code>
2463
+ </li>
2464
+
2465
+ <li class="never" data-hits="" data-linenumber="57">
2466
+
2467
+
2468
+ <code class="ruby"> &quot;big throbbing ipad&quot;.split(&quot; &quot;) ,</code>
2469
+ </li>
2470
+
2471
+ <li class="never" data-hits="" data-linenumber="58">
2472
+
2473
+
2474
+ <code class="ruby"> &quot;explicitive deleted&quot;.split(&quot; &quot;)</code>
2475
+ </li>
2476
+
2477
+ <li class="never" data-hits="" data-linenumber="59">
2478
+
2479
+
2480
+ <code class="ruby"> ].reverse</code>
2481
+ </li>
2482
+
2483
+ <li class="covered" data-hits="1" data-linenumber="60">
2484
+ <span class="hits">1</span>
2485
+
2486
+ <code class="ruby"> api.generate_tributary(arrays, [4,2]).join(&quot; &quot;).should eq &quot;I love big throbbing explicitive deleted&quot;</code>
2487
+ </li>
2488
+
2489
+ <li class="never" data-hits="" data-linenumber="61">
2490
+
2491
+
2492
+ <code class="ruby"> end</code>
2493
+ </li>
2494
+
2495
+ <li class="never" data-hits="" data-linenumber="62">
2496
+
2497
+
2498
+ <code class="ruby"> end</code>
2499
+ </li>
2500
+
2501
+ <li class="never" data-hits="" data-linenumber="63">
2502
+
2503
+
2504
+ <code class="ruby"></code>
2505
+ </li>
2506
+
2507
+ <li class="covered" data-hits="1" data-linenumber="64">
2508
+ <span class="hits">1</span>
2509
+
2510
+ <code class="ruby"> context &quot;bad input&quot; do</code>
2511
+ </li>
2512
+
2513
+ <li class="never" data-hits="" data-linenumber="65">
2514
+
2515
+
2516
+ <code class="ruby"></code>
2517
+ </li>
2518
+
2519
+ <li class="covered" data-hits="1" data-linenumber="66">
2520
+ <span class="hits">1</span>
2521
+
2522
+ <code class="ruby"> it &quot;should do as much as possible and ignore the rest of the starts if the initial array isn't long enough&quot; do</code>
2523
+ </li>
2524
+
2525
+ <li class="covered" data-hits="1" data-linenumber="67">
2526
+ <span class="hits">1</span>
2527
+
2528
+ <code class="ruby"> api.generate_tributary([[1,2,3,4,5], [10,2,3,4]], [5,4,3,1]).should eq [10,1,2,3,4,5]</code>
2529
+ </li>
2530
+
2531
+ <li class="never" data-hits="" data-linenumber="68">
2532
+
2533
+
2534
+ <code class="ruby"> end</code>
2535
+ </li>
2536
+
2537
+ <li class="never" data-hits="" data-linenumber="69">
2538
+
2539
+
2540
+ <code class="ruby"></code>
2541
+ </li>
2542
+
2543
+ <li class="covered" data-hits="1" data-linenumber="70">
2544
+ <span class="hits">1</span>
2545
+
2546
+ <code class="ruby"> it &quot;should throw an error if you attempt to start well after the array&quot; do</code>
2547
+ </li>
2548
+
2549
+ <li class="covered" data-hits="1" data-linenumber="71">
2550
+ <span class="hits">1</span>
2551
+
2552
+ <code class="ruby"> expect do</code>
2553
+ </li>
2554
+
2555
+ <li class="covered" data-hits="1" data-linenumber="72">
2556
+ <span class="hits">1</span>
2557
+
2558
+ <code class="ruby"> api.generate_tributary([[1,2,3,4],[1,2,3]], [99])</code>
2559
+ </li>
2560
+
2561
+ <li class="never" data-hits="" data-linenumber="73">
2562
+
2563
+
2564
+ <code class="ruby"> end.to throw_symbol :OutOfRange</code>
2565
+ </li>
2566
+
2567
+ <li class="never" data-hits="" data-linenumber="74">
2568
+
2569
+
2570
+ <code class="ruby"> end</code>
2571
+ </li>
2572
+
2573
+ <li class="never" data-hits="" data-linenumber="75">
2574
+
2575
+
2576
+ <code class="ruby"> end</code>
2577
+ </li>
2578
+
2579
+ <li class="never" data-hits="" data-linenumber="76">
2580
+
2581
+
2582
+ <code class="ruby"></code>
2583
+ </li>
2584
+
2585
+ <li class="never" data-hits="" data-linenumber="77">
2586
+
2587
+
2588
+ <code class="ruby"> end</code>
2589
+ </li>
2590
+
2591
+ <li class="never" data-hits="" data-linenumber="78">
2592
+
2593
+
2594
+ <code class="ruby"></code>
2595
+ </li>
2596
+
2597
+ <li class="covered" data-hits="1" data-linenumber="79">
2598
+ <span class="hits">1</span>
2599
+
2600
+ <code class="ruby"> describe &quot;#replace_in_part&quot; do</code>
2601
+ </li>
2602
+
2603
+ <li class="never" data-hits="" data-linenumber="80">
2604
+
2605
+
2606
+ <code class="ruby"></code>
2607
+ </li>
2608
+
2609
+ <li class="covered" data-hits="1" data-linenumber="81">
2610
+ <span class="hits">1</span>
2611
+
2612
+ <code class="ruby"> it &quot;should replace the specified chunk in a given array&quot; do</code>
2613
+ </li>
2614
+
2615
+ <li class="covered" data-hits="1" data-linenumber="82">
2616
+ <span class="hits">1</span>
2617
+
2618
+ <code class="ruby"> original = &quot;f a b t&quot;.split &quot; &quot;</code>
2619
+ </li>
2620
+
2621
+ <li class="covered" data-hits="1" data-linenumber="83">
2622
+ <span class="hits">1</span>
2623
+
2624
+ <code class="ruby"> chunk = &quot;g g o&quot;.split &quot; &quot;</code>
2625
+ </li>
2626
+
2627
+ <li class="covered" data-hits="1" data-linenumber="84">
2628
+ <span class="hits">1</span>
2629
+
2630
+ <code class="ruby"> api.replace_in_part( original, chunk, 2, 2).join.should eq &quot;faggot&quot;</code>
2631
+ </li>
2632
+
2633
+ <li class="covered" data-hits="1" data-linenumber="85">
2634
+ <span class="hits">1</span>
2635
+
2636
+ <code class="ruby"> original.join.should eq &quot;fabt&quot;</code>
2637
+ </li>
2638
+
2639
+ <li class="covered" data-hits="1" data-linenumber="86">
2640
+ <span class="hits">1</span>
2641
+
2642
+ <code class="ruby"> chunk.join.should eq &quot;ggo&quot;</code>
2643
+ </li>
2644
+
2645
+ <li class="never" data-hits="" data-linenumber="87">
2646
+
2647
+
2648
+ <code class="ruby"> end</code>
2649
+ </li>
2650
+
2651
+ <li class="never" data-hits="" data-linenumber="88">
2652
+
2653
+
2654
+ <code class="ruby"> end</code>
2655
+ </li>
2656
+
2657
+ <li class="never" data-hits="" data-linenumber="89">
2658
+
2659
+
2660
+ <code class="ruby"></code>
2661
+ </li>
2662
+
2663
+ <li class="covered" data-hits="1" data-linenumber="90">
2664
+ <span class="hits">1</span>
2665
+
2666
+ <code class="ruby"> it &quot;should replace as much as possible and then just append the rest in the case the replacement is longer than the original&quot; do</code>
2667
+ </li>
2668
+
2669
+ <li class="covered" data-hits="1" data-linenumber="91">
2670
+ <span class="hits">1</span>
2671
+
2672
+ <code class="ruby"> original = &quot;asd&quot;.split &quot;&quot;</code>
2673
+ </li>
2674
+
2675
+ <li class="covered" data-hits="1" data-linenumber="92">
2676
+ <span class="hits">1</span>
2677
+
2678
+ <code class="ruby"> chunk = &quot;sshole&quot;.split &quot;&quot;</code>
2679
+ </li>
2680
+
2681
+ <li class="covered" data-hits="1" data-linenumber="93">
2682
+ <span class="hits">1</span>
2683
+
2684
+ <code class="ruby"> api.replace_in_part(original, chunk, 1).join.should eq &quot;asshole&quot;</code>
2685
+ </li>
2686
+
2687
+ <li class="never" data-hits="" data-linenumber="94">
2688
+
2689
+
2690
+ <code class="ruby"> end</code>
2691
+ </li>
2692
+
2693
+ <li class="never" data-hits="" data-linenumber="95">
2694
+
2695
+
2696
+ <code class="ruby"></code>
2697
+ </li>
2698
+
2699
+ <li class="covered" data-hits="1" data-linenumber="96">
2700
+ <span class="hits">1</span>
2701
+
2702
+ <code class="ruby"> it &quot;should return the chunk if the original array is empty; it should ignore the other options&quot; do</code>
2703
+ </li>
2704
+
2705
+ <li class="covered" data-hits="1" data-linenumber="97">
2706
+ <span class="hits">1</span>
2707
+
2708
+ <code class="ruby"> api.replace_in_part([], [1,2,3,4], 42).should eq [1,2,3,4]</code>
2709
+ </li>
2710
+
2711
+ <li class="never" data-hits="" data-linenumber="98">
2712
+
2713
+
2714
+ <code class="ruby"> end</code>
2715
+ </li>
2716
+
2717
+ <li class="never" data-hits="" data-linenumber="99">
2718
+
2719
+
2720
+ <code class="ruby"></code>
2721
+ </li>
2722
+
2723
+ <li class="covered" data-hits="1" data-linenumber="100">
2724
+ <span class="hits">1</span>
2725
+
2726
+ <code class="ruby"> it &quot;should return a cropped version of the array if the replacement chunk is empty&quot; do</code>
2727
+ </li>
2728
+
2729
+ <li class="covered" data-hits="1" data-linenumber="101">
2730
+ <span class="hits">1</span>
2731
+
2732
+ <code class="ruby"> api.replace_in_part([1,2,3,4], [], 2).should eq [1,2]</code>
2733
+ </li>
2734
+
2735
+ <li class="covered" data-hits="1" data-linenumber="102">
2736
+ <span class="hits">1</span>
2737
+
2738
+ <code class="ruby"> api.replace_in_part([0,1,2,3,4,5,6,7],[], 2, 4).should eq [0,1,5,6,7]</code>
2739
+ </li>
2740
+
2741
+ <li class="never" data-hits="" data-linenumber="103">
2742
+
2743
+
2744
+ <code class="ruby"> end</code>
2745
+ </li>
2746
+
2747
+ <li class="never" data-hits="" data-linenumber="104">
2748
+
2749
+
2750
+ <code class="ruby"> </code>
2751
+ </li>
2752
+
2753
+ <li class="never" data-hits="" data-linenumber="105">
2754
+
2755
+
2756
+ <code class="ruby"></code>
2757
+ </li>
2758
+
2759
+ <li class="never" data-hits="" data-linenumber="106">
2760
+
2761
+
2762
+ <code class="ruby">end</code>
2763
+ </li>
2764
+
2765
+ </ol>
2766
+ </pre>
2767
+ </div>
2768
+
2769
+ <div class="source_table" id="dddfd930568df8af4719a119b00fd34dd9244183">
2770
+ <div class="header">
2771
+ <h3>spec/cascadence/stateful_spec.rb</h3>
2772
+ <h4><span class="green">100.0 %</span> covered</h4>
2773
+ <div>
2774
+ <b>68</b> relevant lines.
2775
+ <span class="green"><b>68</b> lines covered</span> and
2776
+ <span class="red"><b>0</b> lines missed.</span>
2777
+ </div>
2778
+ </div>
2779
+
2780
+ <pre>
2781
+ <ol>
2782
+
2783
+ <li class="covered" data-hits="1" data-linenumber="1">
2784
+ <span class="hits">1</span>
2785
+
2786
+ <code class="ruby">require &quot;spec_helper&quot;</code>
2787
+ </li>
2788
+
2789
+ <li class="never" data-hits="" data-linenumber="2">
2790
+
2791
+
2792
+ <code class="ruby"></code>
2793
+ </li>
2794
+
2795
+ <li class="covered" data-hits="1" data-linenumber="3">
2796
+ <span class="hits">1</span>
2797
+
2798
+ <code class="ruby">class CascadeTest</code>
2799
+ </li>
2800
+
2801
+ <li class="covered" data-hits="1" data-linenumber="4">
2802
+ <span class="hits">1</span>
2803
+
2804
+ <code class="ruby"> include Cascadence::Stateful</code>
2805
+ </li>
2806
+
2807
+ <li class="never" data-hits="" data-linenumber="5">
2808
+
2809
+
2810
+ <code class="ruby"></code>
2811
+ </li>
2812
+
2813
+ <li class="covered" data-hits="1" data-linenumber="6">
2814
+ <span class="hits">1</span>
2815
+
2816
+ <code class="ruby"> cascading_order :step1, :step2, :step3</code>
2817
+ </li>
2818
+
2819
+ <li class="never" data-hits="" data-linenumber="7">
2820
+
2821
+
2822
+ <code class="ruby"></code>
2823
+ </li>
2824
+
2825
+ <li class="covered" data-hits="1" data-linenumber="8">
2826
+ <span class="hits">1</span>
2827
+
2828
+ <code class="ruby"> attr_reader :foo</code>
2829
+ </li>
2830
+
2831
+ <li class="never" data-hits="" data-linenumber="9">
2832
+
2833
+
2834
+ <code class="ruby"></code>
2835
+ </li>
2836
+
2837
+ <li class="covered" data-hits="1" data-linenumber="10">
2838
+ <span class="hits">1</span>
2839
+
2840
+ <code class="ruby"> def step1</code>
2841
+ </li>
2842
+
2843
+ <li class="covered" data-hits="13" data-linenumber="11">
2844
+ <span class="hits">13</span>
2845
+
2846
+ <code class="ruby"> @foo = 2</code>
2847
+ </li>
2848
+
2849
+ <li class="never" data-hits="" data-linenumber="12">
2850
+
2851
+
2852
+ <code class="ruby"> end</code>
2853
+ </li>
2854
+
2855
+ <li class="never" data-hits="" data-linenumber="13">
2856
+
2857
+
2858
+ <code class="ruby"></code>
2859
+ </li>
2860
+
2861
+ <li class="covered" data-hits="1" data-linenumber="14">
2862
+ <span class="hits">1</span>
2863
+
2864
+ <code class="ruby"> def step2</code>
2865
+ </li>
2866
+
2867
+ <li class="covered" data-hits="12" data-linenumber="15">
2868
+ <span class="hits">12</span>
2869
+
2870
+ <code class="ruby"> @foo *= 3</code>
2871
+ </li>
2872
+
2873
+ <li class="never" data-hits="" data-linenumber="16">
2874
+
2875
+
2876
+ <code class="ruby"> end</code>
2877
+ </li>
2878
+
2879
+ <li class="never" data-hits="" data-linenumber="17">
2880
+
2881
+
2882
+ <code class="ruby"></code>
2883
+ </li>
2884
+
2885
+ <li class="covered" data-hits="1" data-linenumber="18">
2886
+ <span class="hits">1</span>
2887
+
2888
+ <code class="ruby"> def step3</code>
2889
+ </li>
2890
+
2891
+ <li class="covered" data-hits="9" data-linenumber="19">
2892
+ <span class="hits">9</span>
2893
+
2894
+ <code class="ruby"> @foo -= 5</code>
2895
+ </li>
2896
+
2897
+ <li class="never" data-hits="" data-linenumber="20">
2898
+
2899
+
2900
+ <code class="ruby"> end</code>
2901
+ </li>
2902
+
2903
+ <li class="never" data-hits="" data-linenumber="21">
2904
+
2905
+
2906
+ <code class="ruby">end</code>
2907
+ </li>
2908
+
2909
+ <li class="never" data-hits="" data-linenumber="22">
2910
+
2911
+
2912
+ <code class="ruby"></code>
2913
+ </li>
2914
+
2915
+ <li class="covered" data-hits="1" data-linenumber="23">
2916
+ <span class="hits">1</span>
2917
+
2918
+ <code class="ruby">describe Cascadence do</code>
2919
+ </li>
2920
+
2921
+ <li class="never" data-hits="" data-linenumber="24">
2922
+
2923
+
2924
+ <code class="ruby"></code>
2925
+ </li>
2926
+
2927
+ <li class="covered" data-hits="1" data-linenumber="25">
2928
+ <span class="hits">1</span>
2929
+
2930
+ <code class="ruby"> before :each do</code>
2931
+ </li>
2932
+
2933
+ <li class="covered" data-hits="17" data-linenumber="26">
2934
+ <span class="hits">17</span>
2935
+
2936
+ <code class="ruby"> @test = CascadeTest.new</code>
2937
+ </li>
2938
+
2939
+ <li class="never" data-hits="" data-linenumber="27">
2940
+
2941
+
2942
+ <code class="ruby"> end</code>
2943
+ </li>
2944
+
2945
+ <li class="never" data-hits="" data-linenumber="28">
2946
+
2947
+
2948
+ <code class="ruby"></code>
2949
+ </li>
2950
+
2951
+ <li class="covered" data-hits="1" data-linenumber="29">
2952
+ <span class="hits">1</span>
2953
+
2954
+ <code class="ruby"> describe &quot;CascadeTest.new&quot; do</code>
2955
+ </li>
2956
+
2957
+ <li class="never" data-hits="" data-linenumber="30">
2958
+
2959
+
2960
+ <code class="ruby"></code>
2961
+ </li>
2962
+
2963
+ <li class="covered" data-hits="1" data-linenumber="31">
2964
+ <span class="hits">1</span>
2965
+
2966
+ <code class="ruby"> it &quot;should have the cascadence_position property&quot; do</code>
2967
+ </li>
2968
+
2969
+ <li class="covered" data-hits="1" data-linenumber="32">
2970
+ <span class="hits">1</span>
2971
+
2972
+ <code class="ruby"> @test.should respond_to :cascadence_position</code>
2973
+ </li>
2974
+
2975
+ <li class="never" data-hits="" data-linenumber="33">
2976
+
2977
+
2978
+ <code class="ruby"> end</code>
2979
+ </li>
2980
+
2981
+ <li class="never" data-hits="" data-linenumber="34">
2982
+
2983
+
2984
+ <code class="ruby"></code>
2985
+ </li>
2986
+
2987
+ <li class="covered" data-hits="1" data-linenumber="35">
2988
+ <span class="hits">1</span>
2989
+
2990
+ <code class="ruby"> it &quot;should have a null current step&quot; do</code>
2991
+ </li>
2992
+
2993
+ <li class="covered" data-hits="1" data-linenumber="36">
2994
+ <span class="hits">1</span>
2995
+
2996
+ <code class="ruby"> @test.current_step_name.should be_nil</code>
2997
+ </li>
2998
+
2999
+ <li class="never" data-hits="" data-linenumber="37">
3000
+
3001
+
3002
+ <code class="ruby"> end</code>
3003
+ </li>
3004
+
3005
+ <li class="never" data-hits="" data-linenumber="38">
3006
+
3007
+
3008
+ <code class="ruby"></code>
3009
+ </li>
3010
+
3011
+ <li class="covered" data-hits="1" data-linenumber="39">
3012
+ <span class="hits">1</span>
3013
+
3014
+ <code class="ruby"> it &quot;should have step1 as it's next step&quot; do</code>
3015
+ </li>
3016
+
3017
+ <li class="covered" data-hits="1" data-linenumber="40">
3018
+ <span class="hits">1</span>
3019
+
3020
+ <code class="ruby"> @test.next_step_name.should eq :step1</code>
3021
+ </li>
3022
+
3023
+ <li class="never" data-hits="" data-linenumber="41">
3024
+
3025
+
3026
+ <code class="ruby"> end</code>
3027
+ </li>
3028
+
3029
+ <li class="never" data-hits="" data-linenumber="42">
3030
+
3031
+
3032
+ <code class="ruby"></code>
3033
+ </li>
3034
+
3035
+ <li class="never" data-hits="" data-linenumber="43">
3036
+
3037
+
3038
+ <code class="ruby"> end</code>
3039
+ </li>
3040
+
3041
+ <li class="never" data-hits="" data-linenumber="44">
3042
+
3043
+
3044
+ <code class="ruby"></code>
3045
+ </li>
3046
+
3047
+ <li class="covered" data-hits="1" data-linenumber="45">
3048
+ <span class="hits">1</span>
3049
+
3050
+ <code class="ruby"> describe &quot;CascadeTest&quot; do</code>
3051
+ </li>
3052
+
3053
+ <li class="never" data-hits="" data-linenumber="46">
3054
+
3055
+
3056
+ <code class="ruby"></code>
3057
+ </li>
3058
+
3059
+ <li class="covered" data-hits="1" data-linenumber="47">
3060
+ <span class="hits">1</span>
3061
+
3062
+ <code class="ruby"> it &quot;should have the cascadence_order property&quot; do</code>
3063
+ </li>
3064
+
3065
+ <li class="covered" data-hits="1" data-linenumber="48">
3066
+ <span class="hits">1</span>
3067
+
3068
+ <code class="ruby"> CascadeTest.should respond_to :cascadence_order</code>
3069
+ </li>
3070
+
3071
+ <li class="never" data-hits="" data-linenumber="49">
3072
+
3073
+
3074
+ <code class="ruby"> end </code>
3075
+ </li>
3076
+
3077
+ <li class="never" data-hits="" data-linenumber="50">
3078
+
3079
+
3080
+ <code class="ruby"></code>
3081
+ </li>
3082
+
3083
+ <li class="never" data-hits="" data-linenumber="51">
3084
+
3085
+
3086
+ <code class="ruby"> end</code>
3087
+ </li>
3088
+
3089
+ <li class="never" data-hits="" data-linenumber="52">
3090
+
3091
+
3092
+ <code class="ruby"></code>
3093
+ </li>
3094
+
3095
+ <li class="covered" data-hits="1" data-linenumber="53">
3096
+ <span class="hits">1</span>
3097
+
3098
+ <code class="ruby"> describe &quot;run next&quot; do </code>
3099
+ </li>
3100
+
3101
+ <li class="never" data-hits="" data-linenumber="54">
3102
+
3103
+
3104
+ <code class="ruby"></code>
3105
+ </li>
3106
+
3107
+ <li class="covered" data-hits="1" data-linenumber="55">
3108
+ <span class="hits">1</span>
3109
+
3110
+ <code class="ruby"> it &quot;should run the first thing specified by the cascadence order&quot; do</code>
3111
+ </li>
3112
+
3113
+ <li class="covered" data-hits="1" data-linenumber="56">
3114
+ <span class="hits">1</span>
3115
+
3116
+ <code class="ruby"> @test.run_next.foo.should eq 2</code>
3117
+ </li>
3118
+
3119
+ <li class="never" data-hits="" data-linenumber="57">
3120
+
3121
+
3122
+ <code class="ruby"> end</code>
3123
+ </li>
3124
+
3125
+ <li class="never" data-hits="" data-linenumber="58">
3126
+
3127
+
3128
+ <code class="ruby"></code>
3129
+ </li>
3130
+
3131
+ <li class="covered" data-hits="1" data-linenumber="59">
3132
+ <span class="hits">1</span>
3133
+
3134
+ <code class="ruby"> it &quot;should run the first two steps specified by the cascadence order&quot; do</code>
3135
+ </li>
3136
+
3137
+ <li class="covered" data-hits="1" data-linenumber="60">
3138
+ <span class="hits">1</span>
3139
+
3140
+ <code class="ruby"> @test.run_next.tap do |cascade|</code>
3141
+ </li>
3142
+
3143
+ <li class="covered" data-hits="1" data-linenumber="61">
3144
+ <span class="hits">1</span>
3145
+
3146
+ <code class="ruby"> cascade.foo.should eq 2</code>
3147
+ </li>
3148
+
3149
+ <li class="never" data-hits="" data-linenumber="62">
3150
+
3151
+
3152
+ <code class="ruby"> end.run_next.foo.should eq 6</code>
3153
+ </li>
3154
+
3155
+ <li class="never" data-hits="" data-linenumber="63">
3156
+
3157
+
3158
+ <code class="ruby"> end</code>
3159
+ </li>
3160
+
3161
+ <li class="never" data-hits="" data-linenumber="64">
3162
+
3163
+
3164
+ <code class="ruby"></code>
3165
+ </li>
3166
+
3167
+ <li class="covered" data-hits="1" data-linenumber="65">
3168
+ <span class="hits">1</span>
3169
+
3170
+ <code class="ruby"> it &quot;should run all 3 steps specified by the cascadence order&quot; do</code>
3171
+ </li>
3172
+
3173
+ <li class="covered" data-hits="1" data-linenumber="66">
3174
+ <span class="hits">1</span>
3175
+
3176
+ <code class="ruby"> @test.run_next.run_next.run_next.foo.should eq 1</code>
3177
+ </li>
3178
+
3179
+ <li class="never" data-hits="" data-linenumber="67">
3180
+
3181
+
3182
+ <code class="ruby"> end </code>
3183
+ </li>
3184
+
3185
+ <li class="never" data-hits="" data-linenumber="68">
3186
+
3187
+
3188
+ <code class="ruby"></code>
3189
+ </li>
3190
+
3191
+ <li class="covered" data-hits="1" data-linenumber="69">
3192
+ <span class="hits">1</span>
3193
+
3194
+ <code class="ruby"> it &quot;should not do anything to the result on extra calls&quot; do</code>
3195
+ </li>
3196
+
3197
+ <li class="covered" data-hits="1" data-linenumber="70">
3198
+ <span class="hits">1</span>
3199
+
3200
+ <code class="ruby"> exp = [2,6,1]</code>
3201
+ </li>
3202
+
3203
+ <li class="covered" data-hits="1" data-linenumber="71">
3204
+ <span class="hits">1</span>
3205
+
3206
+ <code class="ruby"> (0..6).to_a.inject(@test) do |mem, nex|</code>
3207
+ </li>
3208
+
3209
+ <li class="covered" data-hits="7" data-linenumber="72">
3210
+ <span class="hits">7</span>
3211
+
3212
+ <code class="ruby"> n = nex &lt; 3 ? nex : 2</code>
3213
+ </li>
3214
+
3215
+ <li class="covered" data-hits="7" data-linenumber="73">
3216
+ <span class="hits">7</span>
3217
+
3218
+ <code class="ruby"> res = mem.run_next</code>
3219
+ </li>
3220
+
3221
+ <li class="covered" data-hits="7" data-linenumber="74">
3222
+ <span class="hits">7</span>
3223
+
3224
+ <code class="ruby"> res.class.should eq CascadeTest</code>
3225
+ </li>
3226
+
3227
+ <li class="covered" data-hits="7" data-linenumber="75">
3228
+ <span class="hits">7</span>
3229
+
3230
+ <code class="ruby"> res.foo.should_not be_nil</code>
3231
+ </li>
3232
+
3233
+ <li class="covered" data-hits="7" data-linenumber="76">
3234
+ <span class="hits">7</span>
3235
+
3236
+ <code class="ruby"> exp[n].should_not be_nil</code>
3237
+ </li>
3238
+
3239
+ <li class="covered" data-hits="7" data-linenumber="77">
3240
+ <span class="hits">7</span>
3241
+
3242
+ <code class="ruby"> res.foo.should eq exp[n]</code>
3243
+ </li>
3244
+
3245
+ <li class="covered" data-hits="7" data-linenumber="78">
3246
+ <span class="hits">7</span>
3247
+
3248
+ <code class="ruby"> res</code>
3249
+ </li>
3250
+
3251
+ <li class="never" data-hits="" data-linenumber="79">
3252
+
3253
+
3254
+ <code class="ruby"> end.foo.should eq exp.last</code>
3255
+ </li>
3256
+
3257
+ <li class="never" data-hits="" data-linenumber="80">
3258
+
3259
+
3260
+ <code class="ruby"> end </code>
3261
+ </li>
3262
+
3263
+ <li class="never" data-hits="" data-linenumber="81">
3264
+
3265
+
3266
+ <code class="ruby"> end </code>
3267
+ </li>
3268
+
3269
+ <li class="never" data-hits="" data-linenumber="82">
3270
+
3271
+
3272
+ <code class="ruby"></code>
3273
+ </li>
3274
+
3275
+ <li class="covered" data-hits="1" data-linenumber="83">
3276
+ <span class="hits">1</span>
3277
+
3278
+ <code class="ruby"> describe &quot;run states&quot; do</code>
3279
+ </li>
3280
+
3281
+ <li class="never" data-hits="" data-linenumber="84">
3282
+
3283
+
3284
+ <code class="ruby"></code>
3285
+ </li>
3286
+
3287
+ <li class="covered" data-hits="5" data-linenumber="85">
3288
+ <span class="hits">5</span>
3289
+
3290
+ <code class="ruby"> let(:final) { @test.run_states }</code>
3291
+ </li>
3292
+
3293
+ <li class="never" data-hits="" data-linenumber="86">
3294
+
3295
+
3296
+ <code class="ruby"></code>
3297
+ </li>
3298
+
3299
+ <li class="covered" data-hits="1" data-linenumber="87">
3300
+ <span class="hits">1</span>
3301
+
3302
+ <code class="ruby"> it &quot;should have a valid final state&quot; do</code>
3303
+ </li>
3304
+
3305
+ <li class="covered" data-hits="1" data-linenumber="88">
3306
+ <span class="hits">1</span>
3307
+
3308
+ <code class="ruby"> final.should_not be_nil</code>
3309
+ </li>
3310
+
3311
+ <li class="never" data-hits="" data-linenumber="89">
3312
+
3313
+
3314
+ <code class="ruby"> end</code>
3315
+ </li>
3316
+
3317
+ <li class="never" data-hits="" data-linenumber="90">
3318
+
3319
+
3320
+ <code class="ruby"></code>
3321
+ </li>
3322
+
3323
+ <li class="covered" data-hits="1" data-linenumber="91">
3324
+ <span class="hits">1</span>
3325
+
3326
+ <code class="ruby"> it &quot;should have maintained the correct cascadence order&quot; do</code>
3327
+ </li>
3328
+
3329
+ <li class="covered" data-hits="1" data-linenumber="92">
3330
+ <span class="hits">1</span>
3331
+
3332
+ <code class="ruby"> final.class.cascadence_order.should eq [:step1, :step2, :step3]</code>
3333
+ </li>
3334
+
3335
+ <li class="never" data-hits="" data-linenumber="93">
3336
+
3337
+
3338
+ <code class="ruby"> end </code>
3339
+ </li>
3340
+
3341
+ <li class="never" data-hits="" data-linenumber="94">
3342
+
3343
+
3344
+ <code class="ruby"></code>
3345
+ </li>
3346
+
3347
+ <li class="covered" data-hits="1" data-linenumber="95">
3348
+ <span class="hits">1</span>
3349
+
3350
+ <code class="ruby"> it &quot;should have advanced to the final cascadence position&quot; do</code>
3351
+ </li>
3352
+
3353
+ <li class="covered" data-hits="1" data-linenumber="96">
3354
+ <span class="hits">1</span>
3355
+
3356
+ <code class="ruby"> final.cascadence_position.should eq 2</code>
3357
+ </li>
3358
+
3359
+ <li class="never" data-hits="" data-linenumber="97">
3360
+
3361
+
3362
+ <code class="ruby"> end </code>
3363
+ </li>
3364
+
3365
+ <li class="never" data-hits="" data-linenumber="98">
3366
+
3367
+
3368
+ <code class="ruby"></code>
3369
+ </li>
3370
+
3371
+ <li class="covered" data-hits="1" data-linenumber="99">
3372
+ <span class="hits">1</span>
3373
+
3374
+ <code class="ruby"> it &quot;should have the correct cascadence result&quot; do</code>
3375
+ </li>
3376
+
3377
+ <li class="covered" data-hits="1" data-linenumber="100">
3378
+ <span class="hits">1</span>
3379
+
3380
+ <code class="ruby"> final.foo.should eq 1</code>
3381
+ </li>
3382
+
3383
+ <li class="never" data-hits="" data-linenumber="101">
3384
+
3385
+
3386
+ <code class="ruby"> end</code>
3387
+ </li>
3388
+
3389
+ <li class="never" data-hits="" data-linenumber="102">
3390
+
3391
+
3392
+ <code class="ruby"></code>
3393
+ </li>
3394
+
3395
+ <li class="never" data-hits="" data-linenumber="103">
3396
+
3397
+
3398
+ <code class="ruby"> end</code>
3399
+ </li>
3400
+
3401
+ <li class="never" data-hits="" data-linenumber="104">
3402
+
3403
+
3404
+ <code class="ruby"></code>
3405
+ </li>
3406
+
3407
+ <li class="covered" data-hits="1" data-linenumber="105">
3408
+ <span class="hits">1</span>
3409
+
3410
+ <code class="ruby"> describe &quot;run until&quot; do</code>
3411
+ </li>
3412
+
3413
+ <li class="never" data-hits="" data-linenumber="106">
3414
+
3415
+
3416
+ <code class="ruby"> </code>
3417
+ </li>
3418
+
3419
+ <li class="covered" data-hits="1" data-linenumber="107">
3420
+ <span class="hits">1</span>
3421
+
3422
+ <code class="ruby"> it &quot;should run to a specified block&quot; do</code>
3423
+ </li>
3424
+
3425
+ <li class="covered" data-hits="1" data-linenumber="108">
3426
+ <span class="hits">1</span>
3427
+
3428
+ <code class="ruby"> result = @test.run_until do |state|</code>
3429
+ </li>
3430
+
3431
+ <li class="covered" data-hits="3" data-linenumber="109">
3432
+ <span class="hits">3</span>
3433
+
3434
+ <code class="ruby"> :step3 == state.current_step_name</code>
3435
+ </li>
3436
+
3437
+ <li class="never" data-hits="" data-linenumber="110">
3438
+
3439
+
3440
+ <code class="ruby"> end</code>
3441
+ </li>
3442
+
3443
+ <li class="covered" data-hits="1" data-linenumber="111">
3444
+ <span class="hits">1</span>
3445
+
3446
+ <code class="ruby"> result.current_step_name.should eq :step3</code>
3447
+ </li>
3448
+
3449
+ <li class="covered" data-hits="1" data-linenumber="112">
3450
+ <span class="hits">1</span>
3451
+
3452
+ <code class="ruby"> result.foo.should eq 1</code>
3453
+ </li>
3454
+
3455
+ <li class="never" data-hits="" data-linenumber="113">
3456
+
3457
+
3458
+ <code class="ruby"> end</code>
3459
+ </li>
3460
+
3461
+ <li class="never" data-hits="" data-linenumber="114">
3462
+
3463
+
3464
+ <code class="ruby"></code>
3465
+ </li>
3466
+
3467
+ <li class="covered" data-hits="1" data-linenumber="115">
3468
+ <span class="hits">1</span>
3469
+
3470
+ <code class="ruby"> it &quot;should run to a specified order&quot; do</code>
3471
+ </li>
3472
+
3473
+ <li class="covered" data-hits="1" data-linenumber="116">
3474
+ <span class="hits">1</span>
3475
+
3476
+ <code class="ruby"> @test.run_until(:step2).foo.should eq 6</code>
3477
+ </li>
3478
+
3479
+ <li class="never" data-hits="" data-linenumber="117">
3480
+
3481
+
3482
+ <code class="ruby"> end</code>
3483
+ </li>
3484
+
3485
+ <li class="never" data-hits="" data-linenumber="118">
3486
+
3487
+
3488
+ <code class="ruby"></code>
3489
+ </li>
3490
+
3491
+ <li class="covered" data-hits="1" data-linenumber="119">
3492
+ <span class="hits">1</span>
3493
+
3494
+ <code class="ruby"> it &quot;should run to a specified number&quot; do</code>
3495
+ </li>
3496
+
3497
+ <li class="covered" data-hits="1" data-linenumber="120">
3498
+ <span class="hits">1</span>
3499
+
3500
+ <code class="ruby"> @test.run_until(1).foo.should eq 6</code>
3501
+ </li>
3502
+
3503
+ <li class="never" data-hits="" data-linenumber="121">
3504
+
3505
+
3506
+ <code class="ruby"> end</code>
3507
+ </li>
3508
+
3509
+ <li class="never" data-hits="" data-linenumber="122">
3510
+
3511
+
3512
+ <code class="ruby"></code>
3513
+ </li>
3514
+
3515
+ <li class="covered" data-hits="1" data-linenumber="123">
3516
+ <span class="hits">1</span>
3517
+
3518
+ <code class="ruby"> it &quot;should run to a specified foreign class&quot; do</code>
3519
+ </li>
3520
+
3521
+ <li class="covered" data-hits="1" data-linenumber="124">
3522
+ <span class="hits">1</span>
3523
+
3524
+ <code class="ruby"> checker = lambda do |state|</code>
3525
+ </li>
3526
+
3527
+ <li class="covered" data-hits="3" data-linenumber="125">
3528
+ <span class="hits">3</span>
3529
+
3530
+ <code class="ruby"> state.current_step_name == :step3</code>
3531
+ </li>
3532
+
3533
+ <li class="never" data-hits="" data-linenumber="126">
3534
+
3535
+
3536
+ <code class="ruby"> end</code>
3537
+ </li>
3538
+
3539
+ <li class="covered" data-hits="1" data-linenumber="127">
3540
+ <span class="hits">1</span>
3541
+
3542
+ <code class="ruby"> @test.run_until(checker).foo.should eq 1</code>
3543
+ </li>
3544
+
3545
+ <li class="never" data-hits="" data-linenumber="128">
3546
+
3547
+
3548
+ <code class="ruby"> end</code>
3549
+ </li>
3550
+
3551
+ <li class="never" data-hits="" data-linenumber="129">
3552
+
3553
+
3554
+ <code class="ruby"></code>
3555
+ </li>
3556
+
3557
+ <li class="covered" data-hits="1" data-linenumber="130">
3558
+ <span class="hits">1</span>
3559
+
3560
+ <code class="ruby"> it &quot;should have the same result when calling successively&quot; do</code>
3561
+ </li>
3562
+
3563
+ <li class="covered" data-hits="1" data-linenumber="131">
3564
+ <span class="hits">1</span>
3565
+
3566
+ <code class="ruby"> @test.run_until.run_until.run_until.foo.should eq 1</code>
3567
+ </li>
3568
+
3569
+ <li class="never" data-hits="" data-linenumber="132">
3570
+
3571
+
3572
+ <code class="ruby"> end</code>
3573
+ </li>
3574
+
3575
+ <li class="never" data-hits="" data-linenumber="133">
3576
+
3577
+
3578
+ <code class="ruby"></code>
3579
+ </li>
3580
+
3581
+ <li class="never" data-hits="" data-linenumber="134">
3582
+
3583
+
3584
+ <code class="ruby"> end </code>
3585
+ </li>
3586
+
3587
+ <li class="never" data-hits="" data-linenumber="135">
3588
+
3589
+
3590
+ <code class="ruby"></code>
3591
+ </li>
3592
+
3593
+ <li class="never" data-hits="" data-linenumber="136">
3594
+
3595
+
3596
+ <code class="ruby">end</code>
3597
+ </li>
3598
+
3599
+ </ol>
3600
+ </pre>
3601
+ </div>
3602
+
3603
+ <div class="source_table" id="ae64ce5fe55ce14ad0f7fd57b2973adf7c375460">
3604
+ <div class="header">
3605
+ <h3>spec/cascadence_spec.rb</h3>
3606
+ <h4><span class="green">100.0 %</span> covered</h4>
3607
+ <div>
3608
+ <b>7</b> relevant lines.
3609
+ <span class="green"><b>7</b> lines covered</span> and
3610
+ <span class="red"><b>0</b> lines missed.</span>
3611
+ </div>
3612
+ </div>
3613
+
3614
+ <pre>
3615
+ <ol>
3616
+
3617
+ <li class="covered" data-hits="1" data-linenumber="1">
3618
+ <span class="hits">1</span>
3619
+
3620
+ <code class="ruby">require &quot;spec_helper&quot;</code>
3621
+ </li>
3622
+
3623
+ <li class="never" data-hits="" data-linenumber="2">
3624
+
3625
+
3626
+ <code class="ruby"></code>
3627
+ </li>
3628
+
3629
+ <li class="covered" data-hits="1" data-linenumber="3">
3630
+ <span class="hits">1</span>
3631
+
3632
+ <code class="ruby">describe Cascadence do</code>
3633
+ </li>
3634
+
3635
+ <li class="covered" data-hits="1" data-linenumber="4">
3636
+ <span class="hits">1</span>
3637
+
3638
+ <code class="ruby"> it &quot;should pass the presence sanity test&quot; do</code>
3639
+ </li>
3640
+
3641
+ <li class="covered" data-hits="1" data-linenumber="5">
3642
+ <span class="hits">1</span>
3643
+
3644
+ <code class="ruby"> Cascadence.class.should eq Module</code>
3645
+ </li>
3646
+
3647
+ <li class="never" data-hits="" data-linenumber="6">
3648
+
3649
+
3650
+ <code class="ruby"> end</code>
3651
+ </li>
3652
+
3653
+ <li class="never" data-hits="" data-linenumber="7">
3654
+
3655
+
3656
+ <code class="ruby"></code>
3657
+ </li>
3658
+
3659
+ <li class="covered" data-hits="1" data-linenumber="8">
3660
+ <span class="hits">1</span>
3661
+
3662
+ <code class="ruby"> [:Flow, :ClassMethods, :Stateful, :Helper].each do |constant|</code>
3663
+ </li>
3664
+
3665
+ <li class="covered" data-hits="4" data-linenumber="9">
3666
+ <span class="hits">4</span>
3667
+
3668
+ <code class="ruby"> it &quot;should contain the correct #{constant} constant&quot; do</code>
3669
+ </li>
3670
+
3671
+ <li class="covered" data-hits="4" data-linenumber="10">
3672
+ <span class="hits">4</span>
3673
+
3674
+ <code class="ruby"> Cascadence.const_get(constant).should_not be_nil</code>
3675
+ </li>
3676
+
3677
+ <li class="never" data-hits="" data-linenumber="11">
3678
+
3679
+
3680
+ <code class="ruby"> end</code>
3681
+ </li>
3682
+
3683
+ <li class="never" data-hits="" data-linenumber="12">
3684
+
3685
+
3686
+ <code class="ruby"> end</code>
3687
+ </li>
3688
+
3689
+ <li class="never" data-hits="" data-linenumber="13">
3690
+
3691
+
3692
+ <code class="ruby">end</code>
3693
+ </li>
3694
+
3695
+ </ol>
3696
+ </pre>
3697
+ </div>
3698
+
3699
+ </div>
3700
+ </div>
3701
+ </body>
3702
+ </html>