tor_extend 1.0.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -83,8 +83,12 @@
83
83
 
84
84
  <li><a href="../Tor/CachedDesc.html">Tor::CachedDesc</a>
85
85
 
86
+ <li><a href="../Tor/Circuit.html">Tor::Circuit</a>
87
+
86
88
  <li><a href="../Tor/Constants.html">Tor::Constants</a>
87
89
 
90
+ <li><a href="../Tor/LongCircuit.html">Tor::LongCircuit</a>
91
+
88
92
  <li><a href="../Tor/Router.html">Tor::Router</a>
89
93
 
90
94
  <li><a href="../Tor/StatsObj.html">Tor::StatsObj</a>
@@ -157,6 +161,12 @@ href="TController.html#method-i-extendcir_slowly">Tor::TController#extendcir_slo
157
161
  waits between each extension.</p>
158
162
 
159
163
 
164
+ <dt id="PERIODIC_TIMER">PERIODIC_TIMER
165
+
166
+ <dd class="description"><p>This determines how frequent the circuits that make up long circuits will
167
+ be checked and reattached.</p>
168
+
169
+
160
170
  <dt id="WORLDTOUR">WORLDTOUR
161
171
 
162
172
  <dd class="description"><p>This determines where the tour goes to and which placemark ballons come up
@@ -0,0 +1,474 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
+
7
+ <title>Class: Tor::LongCircuit</title>
8
+
9
+ <link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet">
10
+
11
+ <script type="text/javascript">
12
+ var rdoc_rel_prefix = "../";
13
+ </script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
16
+ <script type="text/javascript" charset="utf-8" src="../js/navigation.js"></script>
17
+ <script type="text/javascript" charset="utf-8" src="../js/search_index.js"></script>
18
+ <script type="text/javascript" charset="utf-8" src="../js/search.js"></script>
19
+ <script type="text/javascript" charset="utf-8" src="../js/searcher.js"></script>
20
+ <script type="text/javascript" charset="utf-8" src="../js/darkfish.js"></script>
21
+
22
+
23
+ <body id="top" class="class">
24
+ <nav id="metadata">
25
+ <nav id="home-section" class="section">
26
+ <h3 class="section-header">
27
+ <a href="../index.html">Home</a>
28
+ <a href="../table_of_contents.html#classes">Classes</a>
29
+ <a href="../table_of_contents.html#methods">Methods</a>
30
+ </h3>
31
+ </nav>
32
+
33
+
34
+ <nav id="search-section" class="section project-section" class="initially-hidden">
35
+ <form action="#" method="get" accept-charset="utf-8">
36
+ <h3 class="section-header">
37
+ <input type="text" name="search" placeholder="Search" id="search-field"
38
+ title="Type to search, Up and Down to navigate, Enter to load">
39
+ </h3>
40
+ </form>
41
+
42
+ <ul id="search-results" class="initially-hidden"></ul>
43
+ </nav>
44
+
45
+
46
+ <div id="file-metadata">
47
+ <nav id="file-list-section" class="section">
48
+ <h3 class="section-header">Defined In</h3>
49
+ <ul>
50
+ <li>lib/circuits.rb
51
+ </ul>
52
+ </nav>
53
+
54
+
55
+ </div>
56
+
57
+ <div id="class-metadata">
58
+
59
+ <nav id="parent-class-section" class="section">
60
+ <h3 class="section-header">Parent</h3>
61
+
62
+ <p class="link">Object
63
+
64
+ </nav>
65
+
66
+
67
+ <!-- Method Quickref -->
68
+ <nav id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+
71
+ <ul class="link-list">
72
+
73
+ <li><a href="#method-c-new">::new</a>
74
+
75
+ <li><a href="#method-i-attach_streams">#attach_streams</a>
76
+
77
+ <li><a href="#method-i-built-3F">#built?</a>
78
+
79
+ <li><a href="#method-i-circuit">#circuit</a>
80
+
81
+ <li><a href="#method-i-cirnum">#cirnum</a>
82
+
83
+ <li><a href="#method-i-close_apps">#close_apps</a>
84
+
85
+ <li><a href="#method-i-extend">#extend</a>
86
+
87
+ </ul>
88
+ </nav>
89
+
90
+ </div>
91
+
92
+ <div id="project-metadata">
93
+ <nav id="fileindex-section" class="section project-section">
94
+ <h3 class="section-header">Pages</h3>
95
+
96
+ <ul>
97
+
98
+ <li class="file"><a href="../ReadME_txt.html">ReadME</a>
99
+
100
+ </ul>
101
+ </nav>
102
+
103
+ <nav id="classindex-section" class="section project-section">
104
+ <h3 class="section-header">Class and Module Index</h3>
105
+
106
+ <ul class="link-list">
107
+
108
+ <li><a href="../Tor.html">Tor</a>
109
+
110
+ <li><a href="../Tor/Bridge.html">Tor::Bridge</a>
111
+
112
+ <li><a href="../Tor/CachedDesc.html">Tor::CachedDesc</a>
113
+
114
+ <li><a href="../Tor/Circuit.html">Tor::Circuit</a>
115
+
116
+ <li><a href="../Tor/Constants.html">Tor::Constants</a>
117
+
118
+ <li><a href="../Tor/LongCircuit.html">Tor::LongCircuit</a>
119
+
120
+ <li><a href="../Tor/Router.html">Tor::Router</a>
121
+
122
+ <li><a href="../Tor/StatsObj.html">Tor::StatsObj</a>
123
+
124
+ <li><a href="../Tor/TController.html">Tor::TController</a>
125
+
126
+ </ul>
127
+ </nav>
128
+
129
+ </div>
130
+ </nav>
131
+
132
+ <div id="documentation">
133
+ <h1 class="class">class Tor::LongCircuit</h1>
134
+
135
+ <div id="description" class="description">
136
+
137
+ <p>This creates a Long circuit comprising of multiple sub-circuits. Methods
138
+ include <a href="LongCircuit.html#method-i-built-3F">#built?</a>, <a
139
+ href="LongCircuit.html#method-i-extend">#extend</a>,<a
140
+ href="LongCircuit.html">LongCircuit</a>..<a
141
+ href="LongCircuit.html#method-i-attach_streams">#attach_streams</a>,</p>
142
+
143
+ </div><!-- description -->
144
+
145
+
146
+
147
+
148
+ <section id="5Buntitled-5D" class="documentation-section">
149
+
150
+
151
+
152
+
153
+
154
+
155
+
156
+
157
+ <!-- Methods -->
158
+
159
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section section">
160
+ <h3 class="section-header">Public Class Methods</h3>
161
+
162
+
163
+ <div id="method-c-new" class="method-detail ">
164
+
165
+ <div class="method-heading">
166
+ <span class="method-name">new</span><span
167
+ class="method-args">( tcontrolarray=[], circuitarray=[], proxyconfig )</span>
168
+ <span class="method-click-advice">click to toggle source</span>
169
+ </div>
170
+
171
+
172
+ <div class="method-description">
173
+
174
+ <p>Creates an instance of <a href="LongCircuit.html">Tor::LongCircuit</a> and
175
+ initialises the attributes of the instance including the cirnum, @built and
176
+ @circuitarray containing an sub-circuits that are instances of <a
177
+ href="Circuit.html">Tor::Circuit</a></p>
178
+
179
+
180
+
181
+ <div class="method-source-code" id="new-source">
182
+ <pre><span class="ruby-comment"># File lib/circuits.rb, line 253</span>
183
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>( <span class="ruby-identifier">tcontrolarray</span>=[], <span class="ruby-identifier">circuitarray</span>=[], <span class="ruby-identifier">proxyconfig</span> )
184
+ <span class="ruby-comment"># Would it be better to get proxyconfig from mytor.getconf(&quot;SocksPort&quot;) </span>
185
+ <span class="ruby-ivar">@built</span> = <span class="ruby-keyword">false</span>
186
+ <span class="ruby-ivar">@cirnum</span> = <span class="ruby-value">0</span>
187
+ <span class="ruby-ivar">@circuitarray</span> = []
188
+ <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>; <span class="ruby-identifier">j</span> = <span class="ruby-value">2</span>; <span class="ruby-identifier">k</span>=<span class="ruby-value">0</span>
189
+ <span class="ruby-keyword">while</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">circuitarray</span>.<span class="ruby-identifier">count</span>
190
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">tcontrolarray</span>[<span class="ruby-identifier">k</span>]
191
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">k</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
192
+ <span class="ruby-ivar">@circuitarray</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Circuit</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">tcontrolarray</span>[<span class="ruby-identifier">k</span>], <span class="ruby-identifier">circuitarray</span>[ <span class="ruby-identifier">i</span><span class="ruby-operator">..</span><span class="ruby-identifier">j</span> ] , <span class="ruby-keyword">nil</span> )
193
+ <span class="ruby-keyword">else</span>
194
+ <span class="ruby-ivar">@circuitarray</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Circuit</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">tcontrolarray</span>[<span class="ruby-identifier">k</span>], <span class="ruby-identifier">circuitarray</span>[ <span class="ruby-identifier">i</span><span class="ruby-operator">..</span><span class="ruby-identifier">j</span> ] , <span class="ruby-identifier">proxyconfig</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">k</span> )
195
+ <span class="ruby-keyword">end</span>
196
+ <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span><span class="ruby-value">3</span>
197
+ <span class="ruby-identifier">j</span> <span class="ruby-operator">+=</span><span class="ruby-value">3</span>
198
+ <span class="ruby-identifier">k</span> <span class="ruby-operator">+=</span><span class="ruby-value">1</span>
199
+ <span class="ruby-keyword">end</span>
200
+ <span class="ruby-keyword">end</span>
201
+ <span class="ruby-keyword">end</span></pre>
202
+ </div><!-- new-source -->
203
+
204
+ </div>
205
+
206
+
207
+
208
+
209
+ </div><!-- new-method -->
210
+
211
+
212
+ </section><!-- public-class-method-details -->
213
+
214
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
215
+ <h3 class="section-header">Public Instance Methods</h3>
216
+
217
+
218
+ <div id="method-i-attach_streams" class="method-detail ">
219
+
220
+ <div class="method-heading">
221
+ <span class="method-name">attach_streams</span><span
222
+ class="method-args">()</span>
223
+ <span class="method-click-advice">click to toggle source</span>
224
+ </div>
225
+
226
+
227
+ <div class="method-description">
228
+
229
+ <p>This tries to attach all streams to to a single pre-established circuit.</p>
230
+
231
+
232
+
233
+ <div class="method-source-code" id="attach_streams-source">
234
+ <pre><span class="ruby-comment"># File lib/circuits.rb, line 274</span>
235
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">attach_streams</span>
236
+ <span class="ruby-comment"># fork_reactor runs the reactor in a new thread thus allowing other methods to e run. Should I store the pid? When do I close the pid?</span>
237
+ <span class="ruby-comment"># EM.fork_reactor{</span>
238
+ <span class="ruby-constant">EM</span>.<span class="ruby-identifier">run</span> {
239
+ <span class="ruby-comment"># @counter = 0 if not defined?(@seun) # To count how many times an event has been triggered</span>
240
+ <span class="ruby-ivar">@timer</span>=<span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@circuitarray</span>.<span class="ruby-identifier">count</span>)
241
+ <span class="ruby-value">0</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-ivar">@circuitarray</span>.<span class="ruby-identifier">count</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">z</span><span class="ruby-operator">|</span>
242
+ <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span> <span class="ruby-ivar">@circuitarray</span>[<span class="ruby-identifier">z</span>].<span class="ruby-identifier">launched?</span>
243
+ <span class="ruby-ivar">@circuitarray</span>[<span class="ruby-identifier">z</span>].<span class="ruby-identifier">launch</span>
244
+ <span class="ruby-keyword">end</span>
245
+
246
+ <span class="ruby-comment"># Periodic timer to fire an event, in this case launch/attach sub circuits. If a custom value (Tor::PERIODIC_TIMER) is defined, use it instead </span>
247
+ <span class="ruby-identifier">timer</span> = (<span class="ruby-keyword">defined?</span> <span class="ruby-constant">Tor</span><span class="ruby-operator">::</span><span class="ruby-constant">PERIODIC_TIMER</span>) <span class="ruby-operator">?</span> <span class="ruby-constant">Tor</span><span class="ruby-operator">::</span><span class="ruby-constant">PERIODIC_TIMER</span> <span class="ruby-operator">:</span> <span class="ruby-constant">Tor</span><span class="ruby-operator">::</span><span class="ruby-constant">Constants</span><span class="ruby-operator">::</span><span class="ruby-constant">PERIODIC_TIMER</span>
248
+
249
+ <span class="ruby-comment"># Keep checking if any of the subcircuits has been closed using the timer duration</span>
250
+ <span class="ruby-ivar">@timer</span>[<span class="ruby-identifier">z</span>] = <span class="ruby-constant">EventMachine</span><span class="ruby-operator">::</span><span class="ruby-constant">PeriodicTimer</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">timer</span>) <span class="ruby-keyword">do</span>
251
+ <span class="ruby-ivar">@timer</span>[<span class="ruby-identifier">z</span>].<span class="ruby-identifier">cancel</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@circuitarray</span>[<span class="ruby-identifier">z</span>].<span class="ruby-identifier">closed?</span>
252
+ <span class="ruby-comment"># puts &quot;Counter = #{@counter+=1}\n&quot;</span>
253
+ <span class="ruby-ivar">@circuitarray</span>[<span class="ruby-identifier">z</span>].<span class="ruby-identifier">start</span>
254
+ <span class="ruby-keyword">end</span>
255
+ }
256
+ }
257
+
258
+ <span class="ruby-identifier">y</span> = ( <span class="ruby-identifier">built?</span> ).<span class="ruby-identifier">index</span>(<span class="ruby-keyword">false</span>)
259
+ <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;#{y} - #{built?}\n&quot;</span>
260
+ <span class="ruby-identifier">extend</span> <span class="ruby-identifier">y</span>
261
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span>
262
+ <span class="ruby-keyword">end</span></pre>
263
+ </div><!-- attach_streams-source -->
264
+
265
+ </div>
266
+
267
+
268
+
269
+
270
+ </div><!-- attach_streams-method -->
271
+
272
+
273
+ <div id="method-i-built-3F" class="method-detail ">
274
+
275
+ <div class="method-heading">
276
+ <span class="method-name">built?</span><span
277
+ class="method-args">()</span>
278
+ <span class="method-click-advice">click to toggle source</span>
279
+ </div>
280
+
281
+
282
+ <div class="method-description">
283
+
284
+ <p>Checks if the subcircuits have been built.</p>
285
+
286
+
287
+
288
+ <div class="method-source-code" id="built-3F-source">
289
+ <pre><span class="ruby-comment"># File lib/circuits.rb, line 309</span>
290
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">built?</span>
291
+ <span class="ruby-ivar">@built</span> = <span class="ruby-keyword">true</span>
292
+ <span class="ruby-identifier">truth_table</span> = <span class="ruby-ivar">@circuitarray</span>.<span class="ruby-identifier">collect</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">each_circuit</span><span class="ruby-operator">|</span> <span class="ruby-identifier">each_circuit</span>.<span class="ruby-identifier">built?</span> } <span class="ruby-comment"># To know where the circuit is failing</span>
293
+ <span class="ruby-identifier">truth_table</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">truth_value</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@built</span> = <span class="ruby-ivar">@built</span> &amp; <span class="ruby-identifier">truth_value</span> }
294
+ <span class="ruby-identifier">truth_table</span>
295
+ <span class="ruby-keyword">end</span></pre>
296
+ </div><!-- built-3F-source -->
297
+
298
+ </div>
299
+
300
+
301
+
302
+
303
+ </div><!-- built-3F-method -->
304
+
305
+
306
+ <div id="method-i-circuit" class="method-detail ">
307
+
308
+ <div class="method-heading">
309
+ <span class="method-name">circuit</span><span
310
+ class="method-args">()</span>
311
+ <span class="method-click-advice">click to toggle source</span>
312
+ </div>
313
+
314
+
315
+ <div class="method-description">
316
+
317
+ <p>Returns the array of <a href="Circuit.html">Tor::Circuit</a> instances that
318
+ make up the <a href="LongCircuit.html">LongCircuit</a> instance.</p>
319
+
320
+
321
+
322
+ <div class="method-source-code" id="circuit-source">
323
+ <pre><span class="ruby-comment"># File lib/circuits.rb, line 324</span>
324
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">circuit</span>
325
+ <span class="ruby-ivar">@circuitarray</span>
326
+ <span class="ruby-keyword">end</span></pre>
327
+ </div><!-- circuit-source -->
328
+
329
+ </div>
330
+
331
+
332
+
333
+
334
+ </div><!-- circuit-method -->
335
+
336
+
337
+ <div id="method-i-cirnum" class="method-detail ">
338
+
339
+ <div class="method-heading">
340
+ <span class="method-name">cirnum</span><span
341
+ class="method-args">()</span>
342
+ <span class="method-click-advice">click to toggle source</span>
343
+ </div>
344
+
345
+
346
+ <div class="method-description">
347
+
348
+
349
+
350
+
351
+
352
+ <div class="method-source-code" id="cirnum-source">
353
+ <pre><span class="ruby-comment"># File lib/circuits.rb, line 304</span>
354
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">cirnum</span>
355
+ <span class="ruby-ivar">@circuitarray</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">cirnum</span>
356
+ <span class="ruby-keyword">end</span></pre>
357
+ </div><!-- cirnum-source -->
358
+
359
+ </div>
360
+
361
+
362
+
363
+
364
+ </div><!-- cirnum-method -->
365
+
366
+
367
+ <div id="method-i-close_apps" class="method-detail ">
368
+
369
+ <div class="method-heading">
370
+ <span class="method-name">close_apps</span><span
371
+ class="method-args">()</span>
372
+ <span class="method-click-advice">click to toggle source</span>
373
+ </div>
374
+
375
+
376
+ <div class="method-description">
377
+
378
+ <p>This closes all the sub-circuits.</p>
379
+
380
+
381
+
382
+ <div class="method-source-code" id="close_apps-source">
383
+ <pre><span class="ruby-comment"># File lib/circuits.rb, line 317</span>
384
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">close_apps</span>
385
+ <span class="ruby-ivar">@circuitarray</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">z</span><span class="ruby-operator">|</span>
386
+ <span class="ruby-identifier">z</span>.<span class="ruby-identifier">close_apps</span>
387
+ }
388
+ <span class="ruby-keyword">end</span></pre>
389
+ </div><!-- close_apps-source -->
390
+
391
+ </div>
392
+
393
+
394
+
395
+
396
+ </div><!-- close_apps-method -->
397
+
398
+
399
+ <div id="method-i-extend" class="method-detail ">
400
+
401
+ <div class="method-heading">
402
+ <span class="method-name">extend</span><span
403
+ class="method-args">(*startcir)</span>
404
+ <span class="method-click-advice">click to toggle source</span>
405
+ </div>
406
+
407
+
408
+ <div class="method-description">
409
+
410
+ <p>Extend circuits from startcir position in the circuit array. This is used
411
+ internally by Tor.attach_streams There is no need to call this directly,
412
+ instead use <a
413
+ href="LongCircuit.html#method-i-attach_streams">#attach_streams</a> method.</p>
414
+
415
+
416
+
417
+ <div class="method-source-code" id="extend-source">
418
+ <pre><span class="ruby-comment"># File lib/circuits.rb, line 334</span>
419
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">extend</span>(*<span class="ruby-identifier">startcir</span>)
420
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">startcir</span>.<span class="ruby-identifier">empty?</span>
421
+ <span class="ruby-identifier">tmp</span>=<span class="ruby-value">0</span>
422
+ <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">startcir</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">nil?</span>
423
+ <span class="ruby-identifier">tmp</span>=<span class="ruby-value">0</span>
424
+ <span class="ruby-keyword">else</span>
425
+ <span class="ruby-identifier">tmp</span> = <span class="ruby-identifier">startcir</span>[<span class="ruby-value">0</span>]
426
+ <span class="ruby-keyword">end</span>
427
+
428
+ <span class="ruby-comment"># Extend all sub-circuits or extend only circuits from startcir index.</span>
429
+ <span class="ruby-identifier">tmp</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-ivar">@circuitarray</span>.<span class="ruby-identifier">count</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> ){ <span class="ruby-operator">|</span><span class="ruby-identifier">y</span><span class="ruby-operator">|</span>
430
+ <span class="ruby-identifier">each_circuit</span> = <span class="ruby-ivar">@circuitarray</span>[<span class="ruby-identifier">y</span>]
431
+ <span class="ruby-identifier">counter_z</span>=<span class="ruby-value">0</span>
432
+ <span class="ruby-keyword">while</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">each_circuit</span>.<span class="ruby-identifier">built?</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">counter_z</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">15</span> <span class="ruby-comment"># Try up to 15 times to build the same circuit before giving up</span>
433
+ <span class="ruby-comment"># each_circuit.launch if y != 0 # here I need to launch tor and polipo in this method with the right config file after adding tmpdir path and configs</span>
434
+ <span class="ruby-identifier">cirnum</span> = <span class="ruby-identifier">each_circuit</span>.<span class="ruby-identifier">extend</span>
435
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">each_circuit</span>.<span class="ruby-identifier">built?</span>
436
+ <span class="ruby-keyword">next</span>
437
+ <span class="ruby-keyword">else</span>
438
+ <span class="ruby-identifier">sleep</span>( <span class="ruby-value">2</span> * <span class="ruby-ivar">@circuitarray</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">each_circuit</span>) <span class="ruby-operator">+</span> <span class="ruby-value">2</span> ) <span class="ruby-comment"># arithmetic progression time possible delay between each circuits [2,4,6,8,10,12]...</span>
439
+ <span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">each_circuit</span>.<span class="ruby-identifier">built?</span>
440
+ <span class="ruby-keyword">end</span>
441
+ <span class="ruby-identifier">z</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
442
+ <span class="ruby-keyword">end</span>
443
+
444
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">z</span> <span class="ruby-operator">==</span> <span class="ruby-value">15</span>
445
+ <span class="ruby-identifier">puts</span> <span class="ruby-string">&quot;Circuit failed \n&quot;</span>
446
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span>
447
+ <span class="ruby-keyword">else</span>
448
+ <span class="ruby-identifier">cirnum</span>
449
+ <span class="ruby-keyword">end</span>
450
+ }
451
+ <span class="ruby-keyword">end</span></pre>
452
+ </div><!-- extend-source -->
453
+
454
+ </div>
455
+
456
+
457
+
458
+
459
+ </div><!-- extend-method -->
460
+
461
+
462
+ </section><!-- public-instance-method-details -->
463
+
464
+ </section><!-- 5Buntitled-5D -->
465
+
466
+ </div><!-- documentation -->
467
+
468
+
469
+ <footer id="validator-badges">
470
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
471
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.11.
472
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
473
+ </footer>
474
+