akaer 1.5.8 → 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.
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Class: Akaer::Application
8
8
 
9
- &mdash; Documentation by YARD 0.8.2.1
9
+ &mdash; Documentation by YARD 0.8.4.1
10
10
 
11
11
  </title>
12
12
 
@@ -90,11 +90,15 @@
90
90
 
91
91
 
92
92
 
93
+ <dt class="r2">Includes:</dt>
94
+ <dd class="r2"><span class='object_link'><a href="ApplicationMethods/General.html" title="Akaer::ApplicationMethods::General (module)">Akaer::ApplicationMethods::General</a></span>, <span class='object_link'><a href="ApplicationMethods/System.html" title="Akaer::ApplicationMethods::System (module)">Akaer::ApplicationMethods::System</a></span>, Lazier::I18n</dd>
95
+
96
+
93
97
 
94
98
 
95
99
 
96
- <dt class="r2 last">Defined in:</dt>
97
- <dd class="r2 last">lib/akaer/application.rb</dd>
100
+ <dt class="r1 last">Defined in:</dt>
101
+ <dd class="r1 last">lib/akaer/application.rb</dd>
98
102
 
99
103
  </dl>
100
104
  <div class="clear"></div>
@@ -119,7 +123,7 @@
119
123
  <li class="public ">
120
124
  <span class="summary_signature">
121
125
 
122
- <a href="#command-instance_method" title="#command (instance method)">- (Object) <strong>command</strong> </a>
126
+ <a href="#%40return-instance_method" title="\#@return (instance method)">- (Object) <strong>@return</strong>(@return) </a>
123
127
 
124
128
 
125
129
 
@@ -138,7 +142,7 @@
138
142
 
139
143
 
140
144
 
141
- <span class="summary_desc"><div class='inline'><p>The Mamertes command.</p>
145
+ <span class="summary_desc"><div class='inline'><p>logger The logger for this application.</p>
142
146
  </div></span>
143
147
 
144
148
  </li>
@@ -147,7 +151,7 @@
147
151
  <li class="public ">
148
152
  <span class="summary_signature">
149
153
 
150
- <a href="#config-instance_method" title="#config (instance method)">- (Object) <strong>config</strong> </a>
154
+ <a href="#command-instance_method" title="#command (instance method)">- (Mamertes::Command) <strong>command</strong> </a>
151
155
 
152
156
 
153
157
 
@@ -156,8 +160,6 @@
156
160
 
157
161
 
158
162
 
159
- <span class="note title readonly">readonly</span>
160
-
161
163
 
162
164
 
163
165
 
@@ -166,7 +168,7 @@
166
168
 
167
169
 
168
170
 
169
- <span class="summary_desc"><div class='inline'><p>The <span class='object_link'><a href="Configuration.html" title="Akaer::Configuration (class)">Configuration</a></span> of this application.</p>
171
+ <span class="summary_desc"><div class='inline'><p>The Mamertes command.</p>
170
172
  </div></span>
171
173
 
172
174
  </li>
@@ -175,7 +177,7 @@
175
177
  <li class="public ">
176
178
  <span class="summary_signature">
177
179
 
178
- <a href="#logger-instance_method" title="#logger (instance method)">- (Object) <strong>logger</strong> </a>
180
+ <a href="#config-instance_method" title="#config (instance method)">- (Configuration) <strong>config</strong> </a>
179
181
 
180
182
 
181
183
 
@@ -192,29 +194,16 @@
192
194
 
193
195
 
194
196
 
195
- <span class="summary_desc"><div class='inline'><p>The logger for this application.</p>
197
+ <span class="summary_desc"><div class='inline'><p>The <span class='object_link'><a href="Configuration.html" title="Akaer::Configuration (class)">Configuration</a></span> of this application.</p>
196
198
  </div></span>
197
199
 
198
200
  </li>
199
201
 
200
202
 
201
- </ul>
202
-
203
-
204
-
205
-
206
-
207
- <h2>
208
- Class Method Summary
209
- <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
210
- </h2>
211
-
212
- <ul class="summary">
213
-
214
- <li class="public ">
203
+ <li class="public ">
215
204
  <span class="summary_signature">
216
205
 
217
- <a href="#instance-class_method" title="instance (class method)">+ (Application) <strong>instance</strong>(command, force = false) </a>
206
+ <a href="#logger-instance_method" title="#logger (instance method)">- (Object) <strong>logger</strong> </a>
218
207
 
219
208
 
220
209
 
@@ -222,37 +211,8 @@
222
211
 
223
212
 
224
213
 
225
-
226
-
227
-
228
-
229
-
230
-
231
- <span class="summary_desc"><div class='inline'><p>Returns a unique (singleton) instance of the application.</p>
232
- </div></span>
233
-
234
- </li>
235
-
236
-
237
- </ul>
238
-
239
- <h2>
240
- Instance Method Summary
241
- <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
242
- </h2>
243
-
244
- <ul class="summary">
245
-
246
- <li class="public ">
247
- <span class="summary_signature">
248
214
 
249
- <a href="#action_add-instance_method" title="#action_add (instance method)">- (Boolean) <strong>action_add</strong> </a>
250
215
 
251
-
252
-
253
- </span>
254
-
255
-
256
216
 
257
217
 
258
218
 
@@ -260,39 +220,29 @@
260
220
 
261
221
 
262
222
 
263
- <span class="summary_desc"><div class='inline'><p>Adds aliases to the interface.</p>
223
+ <span class="summary_desc"><div class='inline'><p>Returns the value of attribute logger.</p>
264
224
  </div></span>
265
225
 
266
226
  </li>
267
227
 
268
-
269
- <li class="public ">
270
- <span class="summary_signature">
271
-
272
- <a href="#action_install-instance_method" title="#action_install (instance method)">- (Boolean) <strong>action_install</strong> </a>
273
228
 
229
+ </ul>
230
+
231
+
274
232
 
275
-
276
- </span>
277
-
278
-
279
-
280
-
281
-
282
-
283
-
284
233
 
285
234
 
286
- <span class="summary_desc"><div class='inline'><p>Installs the application into the autolaunch.</p>
287
- </div></span>
288
-
289
- </li>
235
+ <h2>
236
+ Class Method Summary
237
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
238
+ </h2>
290
239
 
240
+ <ul class="summary">
291
241
 
292
242
  <li class="public ">
293
243
  <span class="summary_signature">
294
244
 
295
- <a href="#action_remove-instance_method" title="#action_remove (instance method)">- (Boolean) <strong>action_remove</strong> </a>
245
+ <a href="#instance-class_method" title="instance (class method)">+ (Application) <strong>instance</strong>(command, locale = nil, force = false) </a>
296
246
 
297
247
 
298
248
 
@@ -306,34 +256,20 @@
306
256
 
307
257
 
308
258
 
309
- <span class="summary_desc"><div class='inline'><p>Removes aliases from the interface.</p>
259
+ <span class="summary_desc"><div class='inline'><p>Returns a unique (singleton) instance of the application.</p>
310
260
  </div></span>
311
261
 
312
262
  </li>
313
263
 
314
264
 
315
- <li class="public ">
316
- <span class="summary_signature">
317
-
318
- <a href="#action_uninstall-instance_method" title="#action_uninstall (instance method)">- (Boolean) <strong>action_uninstall</strong> </a>
319
-
320
-
321
-
322
- </span>
323
-
324
-
325
-
326
-
327
-
328
-
329
-
330
-
331
-
332
- <span class="summary_desc"><div class='inline'><p>Uninstalls the application from the autolaunch.</p>
333
- </div></span>
265
+ </ul>
334
266
 
335
- </li>
267
+ <h2>
268
+ Instance Method Summary
269
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
270
+ </h2>
336
271
 
272
+ <ul class="summary">
337
273
 
338
274
  <li class="public ">
339
275
  <span class="summary_signature">
@@ -407,7 +343,7 @@
407
343
  <li class="public ">
408
344
  <span class="summary_signature">
409
345
 
410
- <a href="#initialize-instance_method" title="#initialize (instance method)">- (Application) <strong>initialize</strong>(command) </a>
346
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (Application) <strong>initialize</strong>(command, locale) </a>
411
347
 
412
348
 
413
349
 
@@ -478,7 +414,7 @@
478
414
  <li class="public ">
479
415
  <span class="summary_signature">
480
416
 
481
- <a href="#is_osx%3F-instance_method" title="#is_osx? (instance method)">- (Boolean) <strong>is_osx?</strong> </a>
417
+ <a href="#launch_agent_path-instance_method" title="#launch_agent_path (instance method)">- (String) <strong>launch_agent_path</strong>(name = &quot;it.cowtech.akaer&quot;) </a>
482
418
 
483
419
 
484
420
 
@@ -492,7 +428,7 @@
492
428
 
493
429
 
494
430
 
495
- <span class="summary_desc"><div class='inline'><p>Checks if we are running on MacOS X.</p>
431
+ <span class="summary_desc"><div class='inline'><p>Gets the path for the launch agent file.</p>
496
432
  </div></span>
497
433
 
498
434
  </li>
@@ -501,7 +437,7 @@
501
437
  <li class="public ">
502
438
  <span class="summary_signature">
503
439
 
504
- <a href="#launch_agent_path-instance_method" title="#launch_agent_path (instance method)">- (String) <strong>launch_agent_path</strong>(name = &quot;it.cowtech.akaer&quot;) </a>
440
+ <a href="#pad_number-instance_method" title="#pad_number (instance method)">- (String) <strong>pad_number</strong>(num, len = nil) </a>
505
441
 
506
442
 
507
443
 
@@ -515,20 +451,16 @@
515
451
 
516
452
 
517
453
 
518
- <span class="summary_desc"><div class='inline'><p>Gets the path for the launch agent file.</p>
454
+ <span class="summary_desc"><div class='inline'><p>Pads a number to make it print friendly.</p>
519
455
  </div></span>
520
456
 
521
457
  </li>
522
458
 
523
459
 
524
- <li class="public ">
525
- <span class="summary_signature">
526
-
527
- <a href="#manage-instance_method" title="#manage (instance method)">- (Boolean) <strong>manage</strong>(type, address) </a>
528
-
460
+ </ul>
461
+
462
+
529
463
 
530
-
531
- </span>
532
464
 
533
465
 
534
466
 
@@ -536,47 +468,29 @@
536
468
 
537
469
 
538
470
 
539
-
540
471
 
541
- <span class="summary_desc"><div class='inline'><p>Adds or removes an alias from the interface.</p>
542
- </div></span>
543
-
544
- </li>
545
-
546
-
547
- <li class="public ">
548
- <span class="summary_signature">
549
-
550
- <a href="#pad_number-instance_method" title="#pad_number (instance method)">- (String) <strong>pad_number</strong>(num, len = nil) </a>
551
-
472
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="ApplicationMethods/System.html" title="Akaer::ApplicationMethods::System (module)">Akaer::ApplicationMethods::System</a></span></h3>
473
+ <p class="inherited"><span class='object_link'><a href="ApplicationMethods/System.html#action_add-instance_method" title="Akaer::ApplicationMethods::System#action_add (method)">#action_add</a></span>, <span class='object_link'><a href="ApplicationMethods/System.html#action_install-instance_method" title="Akaer::ApplicationMethods::System#action_install (method)">#action_install</a></span>, <span class='object_link'><a href="ApplicationMethods/System.html#action_remove-instance_method" title="Akaer::ApplicationMethods::System#action_remove (method)">#action_remove</a></span>, <span class='object_link'><a href="ApplicationMethods/System.html#action_uninstall-instance_method" title="Akaer::ApplicationMethods::System#action_uninstall (method)">#action_uninstall</a></span></p>
552
474
 
553
-
554
- </span>
555
-
556
475
 
557
476
 
558
477
 
559
478
 
560
479
 
561
480
 
562
-
563
481
 
564
- <span class="summary_desc"><div class='inline'><p>Pads a number to make it print friendly.</p>
565
- </div></span>
566
482
 
567
- </li>
483
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="ApplicationMethods/General.html" title="Akaer::ApplicationMethods::General (module)">Akaer::ApplicationMethods::General</a></span></h3>
484
+ <p class="inherited"><span class='object_link'><a href="ApplicationMethods/General.html#is_osx%3F-instance_method" title="Akaer::ApplicationMethods::General#is_osx? (method)">#is_osx?</a></span>, <span class='object_link'><a href="ApplicationMethods/General.html#manage-instance_method" title="Akaer::ApplicationMethods::General#manage (method)">#manage</a></span></p>
568
485
 
569
-
570
- </ul>
571
486
 
572
-
573
- <div id="constructor_details" class="method_details_list">
487
+ <div id="constructor_details" class="method_details_list">
574
488
  <h2>Constructor Details</h2>
575
489
 
576
490
  <div class="method_details first">
577
491
  <h3 class="signature first" id="initialize-instance_method">
578
492
 
579
- - (<tt><span class='object_link'><a href="" title="Akaer::Application (class)">Application</a></span></tt>) <strong>initialize</strong>(command)
493
+ - (<tt><span class='object_link'><a href="" title="Akaer::Application (class)">Application</a></span></tt>) <strong>initialize</strong>(command, locale)
580
494
 
581
495
 
582
496
 
@@ -608,6 +522,21 @@
608
522
 
609
523
  </li>
610
524
 
525
+ <li>
526
+
527
+ <span class='name'>locale</span>
528
+
529
+
530
+ <span class='type'>(<tt>Symbol</tt>)</span>
531
+
532
+
533
+
534
+ &mdash;
535
+ <div class='inline'><p>The locale to use for the application.</p>
536
+ </div>
537
+
538
+ </li>
539
+
611
540
  </ul>
612
541
 
613
542
 
@@ -617,75 +546,39 @@
617
546
  <pre class="lines">
618
547
 
619
548
 
620
- 23
621
- 24
622
- 25
623
- 26
624
- 27
625
- 28
626
- 29
627
- 30
628
- 31
629
- 32
630
- 33
631
- 34
632
- 35
633
- 36
634
- 37
635
- 38
636
- 39
637
- 40
638
- 41
639
- 42
640
- 43
641
- 44
642
- 45
643
- 46
644
- 47
645
- 48
646
- 49
647
- 50
648
- 51
649
- 52
650
- 53
651
- 54
652
- 55
653
- 56</pre>
549
+ 283
550
+ 284
551
+ 285
552
+ 286
553
+ 287
554
+ 288
555
+ 289
556
+ 290
557
+ 291
558
+ 292
559
+ 293
560
+ 294
561
+ 295
562
+ 296
563
+ 297
564
+ 298</pre>
654
565
  </td>
655
566
  <td>
656
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 23</span>
567
+ <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 283</span>
568
+
569
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
570
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_i18n_setup'>i18n_setup</span><span class='lparen'>(</span><span class='symbol'>:akaer</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_absolute_path'>absolute_path</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Pathname</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='kw'>__FILE__</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/../../locales/</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
571
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_i18n'>i18n</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
657
572
 
658
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
659
573
  <span class='ivar'>@command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span>
660
- <span class='id identifier rubyid_application'>application</span> <span class='op'>=</span> <span class='ivar'>@command</span><span class='period'>.</span><span class='id identifier rubyid_application'>application</span>
574
+ <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='ivar'>@command</span><span class='period'>.</span><span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_get_options'>get_options</span><span class='period'>.</span><span class='id identifier rubyid_reject'>reject</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='rbrace'>}</span>
661
575
 
662
576
  <span class='comment'># Setup logger
663
577
  </span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_start_time'>start_time</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span>
664
- <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_get_real_file'>get_real_file</span><span class='lparen'>(</span><span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>log-file</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_default_file'>default_file</span><span class='comma'>,</span> <span class='const'>Logger</span><span class='op'>::</span><span class='const'>INFO</span><span class='rparen'>)</span>
578
+ <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_get_real_file'>get_real_file</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>log_file</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_default_file'>default_file</span><span class='comma'>,</span> <span class='const'>Logger</span><span class='op'>::</span><span class='const'>INFO</span><span class='rparen'>)</span>
665
579
 
666
580
  <span class='comment'># Open configuration
667
- </span> <span class='kw'>begin</span>
668
- <span class='id identifier rubyid_overrides'>overrides</span> <span class='op'>=</span> <span class='lbrace'>{</span>
669
- <span class='symbol'>:interface</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>interface</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span>
670
- <span class='symbol'>:addresses</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>addresses</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span>
671
- <span class='symbol'>:start_address</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>start-address</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span>
672
- <span class='symbol'>:aliases</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>aliases</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span>
673
- <span class='symbol'>:add_command</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>add-command</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span>
674
- <span class='symbol'>:remove_command</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>remove-command</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span>
675
- <span class='symbol'>:log_file</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>log-file</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span>
676
- <span class='symbol'>:log_level</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>log-level</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span>
677
- <span class='symbol'>:dry_run</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>dry-run</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span>
678
- <span class='symbol'>:quiet</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>quiet</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span>
679
- <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_reject'>reject</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='rbrace'>}</span>
680
-
681
- <span class='ivar'>@config</span> <span class='op'>=</span> <span class='const'>Akaer</span><span class='op'>::</span><span class='const'>Configuration</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>configuration</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='id identifier rubyid_overrides'>overrides</span><span class='comma'>,</span> <span class='ivar'>@logger</span><span class='rparen'>)</span>
682
-
683
- <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='kw'>nil</span>
684
- <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_get_logger'>get_logger</span>
685
- <span class='kw'>rescue</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>InvalidConfiguration</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
686
- <span class='ivar'>@logger</span> <span class='op'>?</span> <span class='ivar'>@logger</span><span class='period'>.</span><span class='id identifier rubyid_fatal'>fatal</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>STDERR</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fatal'>fatal</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Cannot log to {mark=bright}</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_log_file'>log_file</span><span class='rbrace'>}</span><span class='tstring_content'>{/mark}. Exiting...</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
687
- <span class='id identifier rubyid_raise'>raise</span> <span class='op'>::</span><span class='const'>SystemExit</span>
688
- <span class='kw'>end</span>
581
+ </span> <span class='id identifier rubyid_read_configuration'>read_configuration</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
689
582
 
690
583
  <span class='kw'>self</span>
691
584
  <span class='kw'>end</span></pre>
@@ -702,9 +595,9 @@
702
595
 
703
596
  <span id=""></span>
704
597
  <div class="method_details first">
705
- <h3 class="signature first" id="command-instance_method">
598
+ <h3 class="signature first" id="@return-instance_method">
706
599
 
707
- - (<tt>Object</tt>) <strong>command</strong> <span class="extras">(readonly)</span>
600
+ - (<tt>Object</tt>) <strong>@return</strong>(@return) <span class="extras">(readonly)</span>
708
601
 
709
602
 
710
603
 
@@ -712,7 +605,7 @@
712
605
 
713
606
  </h3><div class="docstring">
714
607
  <div class="discussion">
715
- <p>The Mamertes command.</p>
608
+ <p>logger The logger for this application.</p>
716
609
 
717
610
 
718
611
  </div>
@@ -726,116 +619,347 @@
726
619
  <pre class="lines">
727
620
 
728
621
 
729
- 15
730
- 16
731
- 17</pre>
622
+ 270
623
+ 271
624
+ 272
625
+ 273
626
+ 274
627
+ 275
628
+ 276
629
+ 277
630
+ 278
631
+ 279
632
+ 280
633
+ 281
634
+ 282
635
+ 283
636
+ 284
637
+ 285
638
+ 286
639
+ 287
640
+ 288
641
+ 289
642
+ 290
643
+ 291
644
+ 292
645
+ 293
646
+ 294
647
+ 295
648
+ 296
649
+ 297
650
+ 298
651
+ 299
652
+ 300
653
+ 301
654
+ 302
655
+ 303
656
+ 304
657
+ 305
658
+ 306
659
+ 307
660
+ 308
661
+ 309
662
+ 310
663
+ 311
664
+ 312
665
+ 313
666
+ 314
667
+ 315
668
+ 316
669
+ 317
670
+ 318
671
+ 319
672
+ 320
673
+ 321
674
+ 322
675
+ 323
676
+ 324
677
+ 325
678
+ 326
679
+ 327
680
+ 328
681
+ 329
682
+ 330
683
+ 331
684
+ 332
685
+ 333
686
+ 334
687
+ 335
688
+ 336
689
+ 337
690
+ 338
691
+ 339
692
+ 340
693
+ 341
694
+ 342
695
+ 343
696
+ 344
697
+ 345
698
+ 346
699
+ 347
700
+ 348
701
+ 349
702
+ 350
703
+ 351
704
+ 352
705
+ 353
706
+ 354
707
+ 355
708
+ 356
709
+ 357
710
+ 358
711
+ 359
712
+ 360
713
+ 361
714
+ 362
715
+ 363
716
+ 364
717
+ 365
718
+ 366
719
+ 367
720
+ 368
721
+ 369
722
+ 370
723
+ 371
724
+ 372
725
+ 373
726
+ 374
727
+ 375
728
+ 376
729
+ 377
730
+ 378
731
+ 379
732
+ 380
733
+ 381
734
+ 382
735
+ 383
736
+ 384
737
+ 385
738
+ 386
739
+ 387
740
+ 388
741
+ 389
742
+ 390
743
+ 391
744
+ 392
745
+ 393
746
+ 394
747
+ 395
748
+ 396
749
+ 397
750
+ 398
751
+ 399
752
+ 400
753
+ 401
754
+ 402
755
+ 403
756
+ 404
757
+ 405
758
+ 406
759
+ 407
760
+ 408
761
+ 409
762
+ 410
763
+ 411
764
+ 412
765
+ 413
766
+ 414
767
+ 415
768
+ 416
769
+ 417
770
+ 418
771
+ 419
772
+ 420
773
+ 421
774
+ 422
775
+ 423
776
+ 424
777
+ 425
778
+ 426
779
+ 427
780
+ 428
781
+ 429
782
+ 430
783
+ 431
784
+ 432</pre>
732
785
  </td>
733
786
  <td>
734
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 15</span>
787
+ <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 270</span>
735
788
 
736
- <span class='kw'>def</span> <span class='id identifier rubyid_command'>command</span>
737
- <span class='ivar'>@command</span>
738
- <span class='kw'>end</span></pre>
739
- </td>
740
- </tr>
741
- </table>
742
- </div>
743
-
744
-
745
- <span id=""></span>
746
- <div class="method_details ">
747
- <h3 class="signature " id="config-instance_method">
748
-
749
- - (<tt>Object</tt>) <strong>config</strong> <span class="extras">(readonly)</span>
750
-
789
+ <span class='kw'>class</span> <span class='const'>Application</span>
790
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:config</span>
791
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:command</span>
792
+ <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:logger</span>
751
793
 
752
-
794
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>I18n</span>
795
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Akaer</span><span class='op'>::</span><span class='const'>ApplicationMethods</span><span class='op'>::</span><span class='const'>General</span>
796
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Akaer</span><span class='op'>::</span><span class='const'>ApplicationMethods</span><span class='op'>::</span><span class='const'>System</span>
753
797
 
754
-
755
- </h3><div class="docstring">
756
- <div class="discussion">
757
- <p>The <span class='object_link'><a href="Configuration.html" title="Akaer::Configuration (class)">Configuration</a></span> of this application.</p>
798
+ <span class='comment'># Creates a new application.
799
+ </span> <span class='comment'>#
800
+ </span> <span class='comment'># @param command [Mamertes::Command] The current Mamertes command.
801
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for the application.
802
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
803
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_i18n_setup'>i18n_setup</span><span class='lparen'>(</span><span class='symbol'>:akaer</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_absolute_path'>absolute_path</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Pathname</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='kw'>__FILE__</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/../../locales/</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
804
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_i18n'>i18n</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
758
805
 
806
+ <span class='ivar'>@command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span>
807
+ <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='ivar'>@command</span><span class='period'>.</span><span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_get_options'>get_options</span><span class='period'>.</span><span class='id identifier rubyid_reject'>reject</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='rbrace'>}</span>
759
808
 
760
- </div>
761
- </div>
762
- <div class="tags">
763
-
809
+ <span class='comment'># Setup logger
810
+ </span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_start_time'>start_time</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span>
811
+ <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_get_real_file'>get_real_file</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>log_file</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_default_file'>default_file</span><span class='comma'>,</span> <span class='const'>Logger</span><span class='op'>::</span><span class='const'>INFO</span><span class='rparen'>)</span>
764
812
 
765
- </div><table class="source_code">
766
- <tr>
767
- <td>
768
- <pre class="lines">
813
+ <span class='comment'># Open configuration
814
+ </span> <span class='id identifier rubyid_read_configuration'>read_configuration</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
769
815
 
816
+ <span class='kw'>self</span>
817
+ <span class='kw'>end</span>
770
818
 
771
- 12
772
- 13
773
- 14</pre>
774
- </td>
775
- <td>
776
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 12</span>
819
+ <span class='comment'># Checks if and address is a valid IPv4 address.
820
+ </span> <span class='comment'>#
821
+ </span> <span class='comment'># @param address [String] The address to check.
822
+ </span> <span class='comment'># @return [Boolean] `true` if the address is a valid IPv4 address, `false` otherwise.
823
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_is_ipv4?'>is_ipv4?</span><span class='lparen'>(</span><span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span>
824
+ <span class='id identifier rubyid_address'>address</span> <span class='op'>=</span> <span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
777
825
 
778
- <span class='kw'>def</span> <span class='id identifier rubyid_config'>config</span>
779
- <span class='ivar'>@config</span>
780
- <span class='kw'>end</span></pre>
781
- </td>
782
- </tr>
783
- </table>
784
- </div>
785
-
786
-
787
- <span id="logger=-instance_method"></span>
788
- <div class="method_details ">
789
- <h3 class="signature " id="logger-instance_method">
790
-
791
- - (<tt>Object</tt>) <strong>logger</strong>
792
-
826
+ <span class='id identifier rubyid_mo'>mo</span> <span class='op'>=</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\Z</span><span class='regexp_end'>/</span></span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='lparen'>(</span><span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span>
827
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_mo'>mo</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_mo'>mo</span><span class='period'>.</span><span class='id identifier rubyid_captures'>captures</span><span class='period'>.</span><span class='id identifier rubyid_all?'>all?</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='id identifier rubyid_i'>i</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span> <span class='op'>&lt;</span> <span class='int'>256</span><span class='rbrace'>}</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='kw'>true</span> <span class='op'>:</span> <span class='kw'>false</span>
828
+ <span class='kw'>end</span>
793
829
 
794
-
830
+ <span class='comment'># Checks if and address is a valid IPv6 address.
831
+ </span> <span class='comment'>#
832
+ </span> <span class='comment'># @param address [String] The address to check.
833
+ </span> <span class='comment'># @return [Boolean] `true` if the address is a valid IPv6 address, `false` otherwise.
834
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_is_ipv6?'>is_ipv6?</span><span class='lparen'>(</span><span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span>
835
+ <span class='id identifier rubyid_address'>address</span> <span class='op'>=</span> <span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
836
+
837
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_catch'>catch</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='rparen'>)</span> <span class='kw'>do</span>
838
+ <span class='comment'># IPv6 (normal)
839
+ </span> <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*\Z</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span>
840
+ <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*)?\Z</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span>
841
+ <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*)?\Z</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span>
842
+ <span class='comment'># IPv6 (IPv4 compat)
843
+ </span> <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span> <span class='op'>&amp;&amp;</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_is_ipv4?'>is_ipv4?</span><span class='lparen'>(</span><span class='backref'>$'</span><span class='rparen'>)</span>
844
+ <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:)?</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span> <span class='op'>&amp;&amp;</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_is_ipv4?'>is_ipv4?</span><span class='lparen'>(</span><span class='backref'>$'</span><span class='rparen'>)</span>
845
+ <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:)?</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span> <span class='op'>&amp;&amp;</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_is_ipv4?'>is_ipv4?</span><span class='lparen'>(</span><span class='backref'>$'</span><span class='rparen'>)</span>
846
+
847
+ <span class='kw'>false</span>
848
+ <span class='kw'>end</span>
849
+ <span class='kw'>end</span>
795
850
 
796
-
797
- </h3><div class="docstring">
798
- <div class="discussion">
799
- <p>The logger for this application.</p>
800
851
 
852
+ <span class='comment'># Pads a number to make it print friendly.
853
+ </span> <span class='comment'>#
854
+ </span> <span class='comment'># @param num [Fixnum] The number to pad.
855
+ </span> <span class='comment'># @param len [Fixnum] The minimum length of the padded string.
856
+ </span> <span class='comment'># @return [String] The padded number.
857
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_pad_number'>pad_number</span><span class='lparen'>(</span><span class='id identifier rubyid_num'>num</span><span class='comma'>,</span> <span class='id identifier rubyid_len'>len</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
858
+ <span class='id identifier rubyid_num'>num</span><span class='period'>.</span><span class='id identifier rubyid_to_integer'>to_integer</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_rjust'>rjust</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='id identifier rubyid_len'>len</span><span class='period'>.</span><span class='id identifier rubyid_to_integer'>to_integer</span><span class='comma'>,</span> <span class='int'>2</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
859
+ <span class='kw'>end</span>
801
860
 
802
- </div>
803
- </div>
804
- <div class="tags">
805
-
861
+ <span class='comment'># Gets the current logger of the application.
862
+ </span> <span class='comment'>#
863
+ </span> <span class='comment'># @return [Logger] The current logger of the application.
864
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_get_logger'>get_logger</span>
865
+ <span class='ivar'>@logger</span> <span class='op'>||=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_log_file'>log_file</span><span class='comma'>,</span> <span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_log_level'>log_level</span><span class='comma'>,</span> <span class='ivar'>@log_formatter</span><span class='rparen'>)</span>
866
+ <span class='kw'>end</span>
806
867
 
807
- </div><table class="source_code">
808
- <tr>
809
- <td>
810
- <pre class="lines">
868
+ <span class='comment'># Gets the path for the launch agent file.
869
+ </span> <span class='comment'>#
870
+ </span> <span class='comment'># @param name [String] The base name for the agent.
871
+ </span> <span class='comment'># @return [String] The path for the launch agent file.
872
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_launch_agent_path'>launch_agent_path</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>it.cowtech.akaer</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
873
+ <span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HOME</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/Library/LaunchAgents/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='rbrace'>}</span><span class='tstring_content'>.plist</span><span class='tstring_end'>&quot;</span></span>
874
+ <span class='kw'>end</span>
811
875
 
876
+ <span class='comment'># Executes a shell command.
877
+ </span> <span class='comment'>#
878
+ </span> <span class='comment'># @param command [String] The command to execute.
879
+ </span> <span class='comment'># @return [Boolean] `true` if command succeeded, `false` otherwise.
880
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_execute_command'>execute_command</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
881
+ <span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_system'>system</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
882
+ <span class='kw'>end</span>
812
883
 
813
- 18
814
- 19
815
- 20</pre>
816
- </td>
817
- <td>
818
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 18</span>
884
+ <span class='comment'># Computes the list of address to manage.
885
+ </span> <span class='comment'>#
886
+ </span> <span class='comment'># @param type [Symbol] The type of addresses to consider. Valid values are `:ipv4`, `:ipv6`, otherwise all addresses are considered.
887
+ </span> <span class='comment'># @return [Array] The list of addresses to add or remove from the interface.
888
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_compute_addresses'>compute_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='symbol'>:all</span><span class='rparen'>)</span>
889
+ <span class='id identifier rubyid_config'>config</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span>
890
+ <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_addresses'>addresses</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>?</span> <span class='id identifier rubyid_filter_addresses'>filter_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_generate_addresses'>generate_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
891
+ <span class='kw'>end</span>
819
892
 
820
- <span class='kw'>def</span> <span class='id identifier rubyid_logger'>logger</span>
821
- <span class='ivar'>@logger</span>
893
+ <span class='comment'># Returns a unique (singleton) instance of the application.
894
+ </span> <span class='comment'>#
895
+ </span> <span class='comment'># @param command [Mamertes::Command] The current Mamertes command.
896
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for the application.
897
+ </span> <span class='comment'># @param force [Boolean] If to force recreation of the instance.
898
+ </span> <span class='comment'># @return [Application] The unique (singleton) instance of the application.
899
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_force'>force</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
900
+ <span class='ivar'>@instance</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_force'>force</span>
901
+ <span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>Akaer</span><span class='op'>::</span><span class='const'>Application</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
902
+ <span class='kw'>end</span>
903
+
904
+ <span class='id identifier rubyid_private'>private</span>
905
+ <span class='comment'># Reads the configuration.
906
+ </span> <span class='comment'>#
907
+ </span> <span class='comment'># @param options [Hash] The options to read.
908
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_read_configuration'>read_configuration</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
909
+ <span class='kw'>begin</span>
910
+ <span class='ivar'>@config</span> <span class='op'>=</span> <span class='const'>Akaer</span><span class='op'>::</span><span class='const'>Configuration</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>configuration</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='ivar'>@logger</span><span class='rparen'>)</span>
911
+ <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='kw'>nil</span>
912
+ <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_get_logger'>get_logger</span>
913
+ <span class='kw'>rescue</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>InvalidConfiguration</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
914
+ <span class='ivar'>@logger</span> <span class='op'>?</span> <span class='ivar'>@logger</span><span class='period'>.</span><span class='id identifier rubyid_fatal'>fatal</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>STDERR</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fatal'>fatal</span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_logging_failed'>logging_failed</span><span class='lparen'>(</span><span class='id identifier rubyid_log_file'>log_file</span><span class='rparen'>)</span><span class='rparen'>)</span>
915
+ <span class='id identifier rubyid_raise'>raise</span> <span class='op'>::</span><span class='const'>SystemExit</span>
916
+ <span class='kw'>end</span>
917
+ <span class='kw'>end</span>
918
+
919
+ <span class='comment'># Filters a list of addresses to return just certain type(s).
920
+ </span> <span class='comment'>#
921
+ </span> <span class='comment'># @param config [Configuration] The current configuration.
922
+ </span> <span class='comment'># @param type [Symbol] The type of addresses to return.
923
+ </span> <span class='comment'># @return [Array] A list of IPs.
924
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_filter_addresses'>filter_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
925
+ <span class='id identifier rubyid_filters'>filters</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='symbol'>:ipv4</span><span class='comma'>,</span> <span class='symbol'>:ipv6</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='id identifier rubyid_i'>i</span> <span class='op'>||</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='symbol'>:all</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span>
926
+
927
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_addresses'>addresses</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_address'>address</span><span class='op'>|</span>
928
+ <span class='id identifier rubyid_filters'>filters</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_filter'>filter</span><span class='op'>|</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>is_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filter'>filter</span><span class='rbrace'>}</span><span class='tstring_content'>?</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
929
+ <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span><span class='period'>.</span><span class='id identifier rubyid_uniq'>uniq</span>
930
+ <span class='kw'>end</span>
931
+
932
+ <span class='comment'># Generates a list of addresses which are immediate successors of a start address.
933
+ </span> <span class='comment'>#
934
+ </span> <span class='comment'># @param config [Configuration] The current configuration.
935
+ </span> <span class='comment'># @param type [Symbol] The type of addresses to return.
936
+ </span> <span class='comment'># @return [Array] A list of IPs.
937
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_generate_addresses'>generate_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
938
+ <span class='kw'>begin</span>
939
+ <span class='id identifier rubyid_ip'>ip</span> <span class='op'>=</span> <span class='const'>IPAddr</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_start_address'>start_address</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span>
940
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span> <span class='kw'>if</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>!=</span> <span class='symbol'>:all</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_ip'>ip</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='rbrace'>}</span><span class='tstring_content'>?</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
941
+
942
+ <span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_aliases'>aliases</span> <span class='op'>&gt;</span> <span class='int'>0</span> <span class='op'>?</span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_aliases'>aliases</span> <span class='op'>:</span> <span class='int'>5</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_times'>times</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span>
943
+ <span class='id identifier rubyid_current'>current</span> <span class='op'>=</span> <span class='id identifier rubyid_ip'>ip</span>
944
+ <span class='id identifier rubyid_ip'>ip</span> <span class='op'>=</span> <span class='id identifier rubyid_ip'>ip</span><span class='period'>.</span><span class='id identifier rubyid_succ'>succ</span>
945
+ <span class='id identifier rubyid_current'>current</span>
946
+ <span class='rbrace'>}</span>
947
+ <span class='kw'>rescue</span> <span class='const'>ArgumentError</span>
948
+ <span class='lbracket'>[</span><span class='rbracket'>]</span>
949
+ <span class='kw'>end</span>
950
+ <span class='kw'>end</span>
822
951
  <span class='kw'>end</span></pre>
823
952
  </td>
824
953
  </tr>
825
954
  </table>
826
955
  </div>
827
956
 
828
- </div>
829
-
830
-
831
- <div id="class_method_details" class="method_details_list">
832
- <h2>Class Method Details</h2>
833
-
834
-
835
- <div class="method_details first">
836
- <h3 class="signature first" id="instance-class_method">
957
+
958
+ <span id="command=-instance_method"></span>
959
+ <div class="method_details ">
960
+ <h3 class="signature " id="command-instance_method">
837
961
 
838
- + (<tt><span class='object_link'><a href="" title="Akaer::Application (class)">Application</a></span></tt>) <strong>instance</strong>(command, force = false)
962
+ - (<tt>Mamertes::Command</tt>) <strong>command</strong>
839
963
 
840
964
 
841
965
 
@@ -843,61 +967,25 @@
843
967
 
844
968
  </h3><div class="docstring">
845
969
  <div class="discussion">
846
- <p>Returns a unique (singleton) instance of the application.</p>
970
+ <p>The Mamertes command.</p>
847
971
 
848
972
 
849
973
  </div>
850
974
  </div>
851
975
  <div class="tags">
852
- <p class="tag_title">Parameters:</p>
853
- <ul class="param">
854
976
 
855
- <li>
856
-
857
- <span class='name'>command</span>
858
-
859
-
860
- <span class='type'>(<tt>Mamertes::Command</tt>)</span>
861
-
862
-
863
-
864
- &mdash;
865
- <div class='inline'><p>The current Mamertes command.</p>
866
- </div>
867
-
868
- </li>
869
-
870
- <li>
871
-
872
- <span class='name'>force</span>
873
-
874
-
875
- <span class='type'>(<tt>Boolean</tt>)</span>
876
-
877
-
878
- <em class="default">(defaults to: <tt>false</tt>)</em>
879
-
880
-
881
- &mdash;
882
- <div class='inline'><p>If to force recreation of the instance.</p>
883
- </div>
884
-
885
- </li>
886
-
887
- </ul>
888
-
889
977
  <p class="tag_title">Returns:</p>
890
978
  <ul class="return">
891
979
 
892
980
  <li>
893
981
 
894
982
 
895
- <span class='type'>(<tt><span class='object_link'><a href="" title="Akaer::Application (class)">Application</a></span></tt>)</span>
983
+ <span class='type'>(<tt>Mamertes::Command</tt>)</span>
896
984
 
897
985
 
898
986
 
899
987
  &mdash;
900
- <div class='inline'><p>The unique (singleton) instance of the application.</p>
988
+ <div class='inline'><p>The Mamertes command.</p>
901
989
  </div>
902
990
 
903
991
  </li>
@@ -910,108 +998,347 @@
910
998
  <pre class="lines">
911
999
 
912
1000
 
1001
+ 270
1002
+ 271
1003
+ 272
1004
+ 273
1005
+ 274
1006
+ 275
1007
+ 276
1008
+ 277
1009
+ 278
1010
+ 279
1011
+ 280
1012
+ 281
1013
+ 282
1014
+ 283
1015
+ 284
1016
+ 285
1017
+ 286
1018
+ 287
1019
+ 288
1020
+ 289
1021
+ 290
1022
+ 291
1023
+ 292
1024
+ 293
1025
+ 294
1026
+ 295
1027
+ 296
1028
+ 297
1029
+ 298
1030
+ 299
1031
+ 300
1032
+ 301
1033
+ 302
1034
+ 303
913
1035
  304
914
1036
  305
915
1037
  306
916
- 307</pre>
1038
+ 307
1039
+ 308
1040
+ 309
1041
+ 310
1042
+ 311
1043
+ 312
1044
+ 313
1045
+ 314
1046
+ 315
1047
+ 316
1048
+ 317
1049
+ 318
1050
+ 319
1051
+ 320
1052
+ 321
1053
+ 322
1054
+ 323
1055
+ 324
1056
+ 325
1057
+ 326
1058
+ 327
1059
+ 328
1060
+ 329
1061
+ 330
1062
+ 331
1063
+ 332
1064
+ 333
1065
+ 334
1066
+ 335
1067
+ 336
1068
+ 337
1069
+ 338
1070
+ 339
1071
+ 340
1072
+ 341
1073
+ 342
1074
+ 343
1075
+ 344
1076
+ 345
1077
+ 346
1078
+ 347
1079
+ 348
1080
+ 349
1081
+ 350
1082
+ 351
1083
+ 352
1084
+ 353
1085
+ 354
1086
+ 355
1087
+ 356
1088
+ 357
1089
+ 358
1090
+ 359
1091
+ 360
1092
+ 361
1093
+ 362
1094
+ 363
1095
+ 364
1096
+ 365
1097
+ 366
1098
+ 367
1099
+ 368
1100
+ 369
1101
+ 370
1102
+ 371
1103
+ 372
1104
+ 373
1105
+ 374
1106
+ 375
1107
+ 376
1108
+ 377
1109
+ 378
1110
+ 379
1111
+ 380
1112
+ 381
1113
+ 382
1114
+ 383
1115
+ 384
1116
+ 385
1117
+ 386
1118
+ 387
1119
+ 388
1120
+ 389
1121
+ 390
1122
+ 391
1123
+ 392
1124
+ 393
1125
+ 394
1126
+ 395
1127
+ 396
1128
+ 397
1129
+ 398
1130
+ 399
1131
+ 400
1132
+ 401
1133
+ 402
1134
+ 403
1135
+ 404
1136
+ 405
1137
+ 406
1138
+ 407
1139
+ 408
1140
+ 409
1141
+ 410
1142
+ 411
1143
+ 412
1144
+ 413
1145
+ 414
1146
+ 415
1147
+ 416
1148
+ 417
1149
+ 418
1150
+ 419
1151
+ 420
1152
+ 421
1153
+ 422
1154
+ 423
1155
+ 424
1156
+ 425
1157
+ 426
1158
+ 427
1159
+ 428
1160
+ 429
1161
+ 430
1162
+ 431
1163
+ 432</pre>
917
1164
  </td>
918
1165
  <td>
919
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 304</span>
1166
+ <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 270</span>
920
1167
 
921
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_force'>force</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
922
- <span class='ivar'>@instance</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_force'>force</span>
923
- <span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>Akaer</span><span class='op'>::</span><span class='const'>Application</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
924
- <span class='kw'>end</span></pre>
925
- </td>
926
- </tr>
927
- </table>
928
- </div>
929
-
930
- </div>
1168
+ <span class='kw'>class</span> <span class='const'>Application</span>
1169
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:config</span>
1170
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:command</span>
1171
+ <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:logger</span>
931
1172
 
932
- <div id="instance_method_details" class="method_details_list">
933
- <h2>Instance Method Details</h2>
1173
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>I18n</span>
1174
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Akaer</span><span class='op'>::</span><span class='const'>ApplicationMethods</span><span class='op'>::</span><span class='const'>General</span>
1175
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Akaer</span><span class='op'>::</span><span class='const'>ApplicationMethods</span><span class='op'>::</span><span class='const'>System</span>
934
1176
 
935
-
936
- <div class="method_details first">
937
- <h3 class="signature first" id="action_add-instance_method">
938
-
939
- - (<tt>Boolean</tt>) <strong>action_add</strong>
940
-
1177
+ <span class='comment'># Creates a new application.
1178
+ </span> <span class='comment'>#
1179
+ </span> <span class='comment'># @param command [Mamertes::Command] The current Mamertes command.
1180
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for the application.
1181
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
1182
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_i18n_setup'>i18n_setup</span><span class='lparen'>(</span><span class='symbol'>:akaer</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_absolute_path'>absolute_path</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Pathname</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='kw'>__FILE__</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/../../locales/</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
1183
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_i18n'>i18n</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
941
1184
 
942
-
1185
+ <span class='ivar'>@command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span>
1186
+ <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='ivar'>@command</span><span class='period'>.</span><span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_get_options'>get_options</span><span class='period'>.</span><span class='id identifier rubyid_reject'>reject</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='rbrace'>}</span>
943
1187
 
944
-
945
- </h3><div class="docstring">
946
- <div class="discussion">
947
- <p>Adds aliases to the interface.</p>
1188
+ <span class='comment'># Setup logger
1189
+ </span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_start_time'>start_time</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span>
1190
+ <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_get_real_file'>get_real_file</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>log_file</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_default_file'>default_file</span><span class='comma'>,</span> <span class='const'>Logger</span><span class='op'>::</span><span class='const'>INFO</span><span class='rparen'>)</span>
948
1191
 
1192
+ <span class='comment'># Open configuration
1193
+ </span> <span class='id identifier rubyid_read_configuration'>read_configuration</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
949
1194
 
950
- </div>
951
- </div>
952
- <div class="tags">
953
-
954
- <p class="tag_title">Returns:</p>
955
- <ul class="return">
956
-
957
- <li>
958
-
959
-
960
- <span class='type'>(<tt>Boolean</tt>)</span>
961
-
962
-
963
-
964
- &mdash;
965
- <div class='inline'><p><code>true</code> if action succedeed, <code>false</code> otherwise.</p>
966
- </div>
967
-
968
- </li>
969
-
970
- </ul>
1195
+ <span class='kw'>self</span>
1196
+ <span class='kw'>end</span>
971
1197
 
972
- </div><table class="source_code">
973
- <tr>
974
- <td>
975
- <pre class="lines">
1198
+ <span class='comment'># Checks if and address is a valid IPv4 address.
1199
+ </span> <span class='comment'>#
1200
+ </span> <span class='comment'># @param address [String] The address to check.
1201
+ </span> <span class='comment'># @return [Boolean] `true` if the address is a valid IPv4 address, `false` otherwise.
1202
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_is_ipv4?'>is_ipv4?</span><span class='lparen'>(</span><span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span>
1203
+ <span class='id identifier rubyid_address'>address</span> <span class='op'>=</span> <span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
976
1204
 
1205
+ <span class='id identifier rubyid_mo'>mo</span> <span class='op'>=</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\Z</span><span class='regexp_end'>/</span></span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='lparen'>(</span><span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span>
1206
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_mo'>mo</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_mo'>mo</span><span class='period'>.</span><span class='id identifier rubyid_captures'>captures</span><span class='period'>.</span><span class='id identifier rubyid_all?'>all?</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='id identifier rubyid_i'>i</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span> <span class='op'>&lt;</span> <span class='int'>256</span><span class='rbrace'>}</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='kw'>true</span> <span class='op'>:</span> <span class='kw'>false</span>
1207
+ <span class='kw'>end</span>
977
1208
 
978
- 198
979
- 199
980
- 200
981
- 201
982
- 202
983
- 203
984
- 204
985
- 205
986
- 206
987
- 207
988
- 208
989
- 209</pre>
990
- </td>
991
- <td>
992
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 198</span>
993
-
994
- <span class='kw'>def</span> <span class='id identifier rubyid_action_add'>action_add</span>
995
- <span class='id identifier rubyid_addresses'>addresses</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_compute_addresses'>compute_addresses</span>
996
-
997
- <span class='kw'>if</span> <span class='id identifier rubyid_addresses'>addresses</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='kw'>then</span>
998
- <span class='comment'># Now, for every address, call the command
999
- </span> <span class='id identifier rubyid_addresses'>addresses</span><span class='period'>.</span><span class='id identifier rubyid_all?'>all?</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_address'>address</span><span class='op'>|</span>
1000
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_manage'>manage</span><span class='lparen'>(</span><span class='symbol'>:add</span><span class='comma'>,</span> <span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span>
1001
- <span class='rbrace'>}</span>
1002
- <span class='kw'>else</span>
1003
- <span class='ivar'>@logger</span><span class='period'>.</span><span class='id identifier rubyid_error'>error</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>No valid addresses to add to the interface found.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_quiet'>quiet</span>
1209
+ <span class='comment'># Checks if and address is a valid IPv6 address.
1210
+ </span> <span class='comment'>#
1211
+ </span> <span class='comment'># @param address [String] The address to check.
1212
+ </span> <span class='comment'># @return [Boolean] `true` if the address is a valid IPv6 address, `false` otherwise.
1213
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_is_ipv6?'>is_ipv6?</span><span class='lparen'>(</span><span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span>
1214
+ <span class='id identifier rubyid_address'>address</span> <span class='op'>=</span> <span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
1215
+
1216
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_catch'>catch</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='rparen'>)</span> <span class='kw'>do</span>
1217
+ <span class='comment'># IPv6 (normal)
1218
+ </span> <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*\Z</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span>
1219
+ <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*)?\Z</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span>
1220
+ <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*)?\Z</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span>
1221
+ <span class='comment'># IPv6 (IPv4 compat)
1222
+ </span> <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span> <span class='op'>&amp;&amp;</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_is_ipv4?'>is_ipv4?</span><span class='lparen'>(</span><span class='backref'>$'</span><span class='rparen'>)</span>
1223
+ <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:)?</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span> <span class='op'>&amp;&amp;</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_is_ipv4?'>is_ipv4?</span><span class='lparen'>(</span><span class='backref'>$'</span><span class='rparen'>)</span>
1224
+ <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:)?</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span> <span class='op'>&amp;&amp;</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_is_ipv4?'>is_ipv4?</span><span class='lparen'>(</span><span class='backref'>$'</span><span class='rparen'>)</span>
1225
+
1226
+ <span class='kw'>false</span>
1227
+ <span class='kw'>end</span>
1228
+ <span class='kw'>end</span>
1229
+
1230
+
1231
+ <span class='comment'># Pads a number to make it print friendly.
1232
+ </span> <span class='comment'>#
1233
+ </span> <span class='comment'># @param num [Fixnum] The number to pad.
1234
+ </span> <span class='comment'># @param len [Fixnum] The minimum length of the padded string.
1235
+ </span> <span class='comment'># @return [String] The padded number.
1236
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_pad_number'>pad_number</span><span class='lparen'>(</span><span class='id identifier rubyid_num'>num</span><span class='comma'>,</span> <span class='id identifier rubyid_len'>len</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
1237
+ <span class='id identifier rubyid_num'>num</span><span class='period'>.</span><span class='id identifier rubyid_to_integer'>to_integer</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_rjust'>rjust</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='id identifier rubyid_len'>len</span><span class='period'>.</span><span class='id identifier rubyid_to_integer'>to_integer</span><span class='comma'>,</span> <span class='int'>2</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1238
+ <span class='kw'>end</span>
1239
+
1240
+ <span class='comment'># Gets the current logger of the application.
1241
+ </span> <span class='comment'>#
1242
+ </span> <span class='comment'># @return [Logger] The current logger of the application.
1243
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_get_logger'>get_logger</span>
1244
+ <span class='ivar'>@logger</span> <span class='op'>||=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_log_file'>log_file</span><span class='comma'>,</span> <span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_log_level'>log_level</span><span class='comma'>,</span> <span class='ivar'>@log_formatter</span><span class='rparen'>)</span>
1004
1245
  <span class='kw'>end</span>
1246
+
1247
+ <span class='comment'># Gets the path for the launch agent file.
1248
+ </span> <span class='comment'>#
1249
+ </span> <span class='comment'># @param name [String] The base name for the agent.
1250
+ </span> <span class='comment'># @return [String] The path for the launch agent file.
1251
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_launch_agent_path'>launch_agent_path</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>it.cowtech.akaer</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1252
+ <span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HOME</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/Library/LaunchAgents/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='rbrace'>}</span><span class='tstring_content'>.plist</span><span class='tstring_end'>&quot;</span></span>
1253
+ <span class='kw'>end</span>
1254
+
1255
+ <span class='comment'># Executes a shell command.
1256
+ </span> <span class='comment'>#
1257
+ </span> <span class='comment'># @param command [String] The command to execute.
1258
+ </span> <span class='comment'># @return [Boolean] `true` if command succeeded, `false` otherwise.
1259
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_execute_command'>execute_command</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
1260
+ <span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_system'>system</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
1261
+ <span class='kw'>end</span>
1262
+
1263
+ <span class='comment'># Computes the list of address to manage.
1264
+ </span> <span class='comment'>#
1265
+ </span> <span class='comment'># @param type [Symbol] The type of addresses to consider. Valid values are `:ipv4`, `:ipv6`, otherwise all addresses are considered.
1266
+ </span> <span class='comment'># @return [Array] The list of addresses to add or remove from the interface.
1267
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_compute_addresses'>compute_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='symbol'>:all</span><span class='rparen'>)</span>
1268
+ <span class='id identifier rubyid_config'>config</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span>
1269
+ <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_addresses'>addresses</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>?</span> <span class='id identifier rubyid_filter_addresses'>filter_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_generate_addresses'>generate_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
1270
+ <span class='kw'>end</span>
1271
+
1272
+ <span class='comment'># Returns a unique (singleton) instance of the application.
1273
+ </span> <span class='comment'>#
1274
+ </span> <span class='comment'># @param command [Mamertes::Command] The current Mamertes command.
1275
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for the application.
1276
+ </span> <span class='comment'># @param force [Boolean] If to force recreation of the instance.
1277
+ </span> <span class='comment'># @return [Application] The unique (singleton) instance of the application.
1278
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_force'>force</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
1279
+ <span class='ivar'>@instance</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_force'>force</span>
1280
+ <span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>Akaer</span><span class='op'>::</span><span class='const'>Application</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
1281
+ <span class='kw'>end</span>
1282
+
1283
+ <span class='id identifier rubyid_private'>private</span>
1284
+ <span class='comment'># Reads the configuration.
1285
+ </span> <span class='comment'>#
1286
+ </span> <span class='comment'># @param options [Hash] The options to read.
1287
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_read_configuration'>read_configuration</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
1288
+ <span class='kw'>begin</span>
1289
+ <span class='ivar'>@config</span> <span class='op'>=</span> <span class='const'>Akaer</span><span class='op'>::</span><span class='const'>Configuration</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>configuration</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='ivar'>@logger</span><span class='rparen'>)</span>
1290
+ <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='kw'>nil</span>
1291
+ <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_get_logger'>get_logger</span>
1292
+ <span class='kw'>rescue</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>InvalidConfiguration</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1293
+ <span class='ivar'>@logger</span> <span class='op'>?</span> <span class='ivar'>@logger</span><span class='period'>.</span><span class='id identifier rubyid_fatal'>fatal</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>STDERR</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fatal'>fatal</span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_logging_failed'>logging_failed</span><span class='lparen'>(</span><span class='id identifier rubyid_log_file'>log_file</span><span class='rparen'>)</span><span class='rparen'>)</span>
1294
+ <span class='id identifier rubyid_raise'>raise</span> <span class='op'>::</span><span class='const'>SystemExit</span>
1295
+ <span class='kw'>end</span>
1296
+ <span class='kw'>end</span>
1297
+
1298
+ <span class='comment'># Filters a list of addresses to return just certain type(s).
1299
+ </span> <span class='comment'>#
1300
+ </span> <span class='comment'># @param config [Configuration] The current configuration.
1301
+ </span> <span class='comment'># @param type [Symbol] The type of addresses to return.
1302
+ </span> <span class='comment'># @return [Array] A list of IPs.
1303
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_filter_addresses'>filter_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
1304
+ <span class='id identifier rubyid_filters'>filters</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='symbol'>:ipv4</span><span class='comma'>,</span> <span class='symbol'>:ipv6</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='id identifier rubyid_i'>i</span> <span class='op'>||</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='symbol'>:all</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span>
1305
+
1306
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_addresses'>addresses</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_address'>address</span><span class='op'>|</span>
1307
+ <span class='id identifier rubyid_filters'>filters</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_filter'>filter</span><span class='op'>|</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>is_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filter'>filter</span><span class='rbrace'>}</span><span class='tstring_content'>?</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
1308
+ <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span><span class='period'>.</span><span class='id identifier rubyid_uniq'>uniq</span>
1309
+ <span class='kw'>end</span>
1310
+
1311
+ <span class='comment'># Generates a list of addresses which are immediate successors of a start address.
1312
+ </span> <span class='comment'>#
1313
+ </span> <span class='comment'># @param config [Configuration] The current configuration.
1314
+ </span> <span class='comment'># @param type [Symbol] The type of addresses to return.
1315
+ </span> <span class='comment'># @return [Array] A list of IPs.
1316
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_generate_addresses'>generate_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
1317
+ <span class='kw'>begin</span>
1318
+ <span class='id identifier rubyid_ip'>ip</span> <span class='op'>=</span> <span class='const'>IPAddr</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_start_address'>start_address</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span>
1319
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span> <span class='kw'>if</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>!=</span> <span class='symbol'>:all</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_ip'>ip</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='rbrace'>}</span><span class='tstring_content'>?</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1320
+
1321
+ <span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_aliases'>aliases</span> <span class='op'>&gt;</span> <span class='int'>0</span> <span class='op'>?</span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_aliases'>aliases</span> <span class='op'>:</span> <span class='int'>5</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_times'>times</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span>
1322
+ <span class='id identifier rubyid_current'>current</span> <span class='op'>=</span> <span class='id identifier rubyid_ip'>ip</span>
1323
+ <span class='id identifier rubyid_ip'>ip</span> <span class='op'>=</span> <span class='id identifier rubyid_ip'>ip</span><span class='period'>.</span><span class='id identifier rubyid_succ'>succ</span>
1324
+ <span class='id identifier rubyid_current'>current</span>
1325
+ <span class='rbrace'>}</span>
1326
+ <span class='kw'>rescue</span> <span class='const'>ArgumentError</span>
1327
+ <span class='lbracket'>[</span><span class='rbracket'>]</span>
1328
+ <span class='kw'>end</span>
1329
+ <span class='kw'>end</span>
1005
1330
  <span class='kw'>end</span></pre>
1006
1331
  </td>
1007
1332
  </tr>
1008
1333
  </table>
1009
1334
  </div>
1010
1335
 
1336
+
1337
+ <span id="config=-instance_method"></span>
1011
1338
  <div class="method_details ">
1012
- <h3 class="signature " id="action_install-instance_method">
1339
+ <h3 class="signature " id="config-instance_method">
1013
1340
 
1014
- - (<tt>Boolean</tt>) <strong>action_install</strong>
1341
+ - (<tt><span class='object_link'><a href="Configuration.html" title="Akaer::Configuration (class)">Configuration</a></span></tt>) <strong>config</strong>
1015
1342
 
1016
1343
 
1017
1344
 
@@ -1019,7 +1346,7 @@
1019
1346
 
1020
1347
  </h3><div class="docstring">
1021
1348
  <div class="discussion">
1022
- <p>Installs the application into the autolaunch.</p>
1349
+ <p>The <span class='object_link'><a href="Configuration.html" title="Akaer::Configuration (class)">Configuration</a></span> of this application.</p>
1023
1350
 
1024
1351
 
1025
1352
  </div>
@@ -1032,12 +1359,12 @@
1032
1359
  <li>
1033
1360
 
1034
1361
 
1035
- <span class='type'>(<tt>Boolean</tt>)</span>
1362
+ <span class='type'>(<tt><span class='object_link'><a href="Configuration.html" title="Akaer::Configuration (class)">Configuration</a></span></tt>)</span>
1036
1363
 
1037
1364
 
1038
1365
 
1039
1366
  &mdash;
1040
- <div class='inline'><p><code>true</code> if action succedeed, <code>false</code> otherwise.</p>
1367
+ <div class='inline'><p>The <span class='object_link'><a href="Configuration.html" title="Akaer::Configuration (class)">Configuration</a></span> of this application.</p>
1041
1368
  </div>
1042
1369
 
1043
1370
  </li>
@@ -1050,91 +1377,347 @@
1050
1377
  <pre class="lines">
1051
1378
 
1052
1379
 
1053
- 230
1054
- 231
1055
- 232
1056
- 233
1057
- 234
1058
- 235
1059
- 236
1060
- 237
1061
- 238
1062
- 239
1063
- 240
1064
- 241
1065
- 242
1066
- 243
1067
- 244
1068
- 245
1069
- 246
1070
- 247
1071
- 248
1072
- 249
1073
- 250
1074
- 251
1075
- 252
1076
- 253
1077
- 254
1078
- 255
1079
- 256
1080
- 257
1081
- 258
1082
- 259
1083
- 260
1084
- 261
1085
- 262
1086
- 263
1087
- 264
1088
- 265</pre>
1380
+ 270
1381
+ 271
1382
+ 272
1383
+ 273
1384
+ 274
1385
+ 275
1386
+ 276
1387
+ 277
1388
+ 278
1389
+ 279
1390
+ 280
1391
+ 281
1392
+ 282
1393
+ 283
1394
+ 284
1395
+ 285
1396
+ 286
1397
+ 287
1398
+ 288
1399
+ 289
1400
+ 290
1401
+ 291
1402
+ 292
1403
+ 293
1404
+ 294
1405
+ 295
1406
+ 296
1407
+ 297
1408
+ 298
1409
+ 299
1410
+ 300
1411
+ 301
1412
+ 302
1413
+ 303
1414
+ 304
1415
+ 305
1416
+ 306
1417
+ 307
1418
+ 308
1419
+ 309
1420
+ 310
1421
+ 311
1422
+ 312
1423
+ 313
1424
+ 314
1425
+ 315
1426
+ 316
1427
+ 317
1428
+ 318
1429
+ 319
1430
+ 320
1431
+ 321
1432
+ 322
1433
+ 323
1434
+ 324
1435
+ 325
1436
+ 326
1437
+ 327
1438
+ 328
1439
+ 329
1440
+ 330
1441
+ 331
1442
+ 332
1443
+ 333
1444
+ 334
1445
+ 335
1446
+ 336
1447
+ 337
1448
+ 338
1449
+ 339
1450
+ 340
1451
+ 341
1452
+ 342
1453
+ 343
1454
+ 344
1455
+ 345
1456
+ 346
1457
+ 347
1458
+ 348
1459
+ 349
1460
+ 350
1461
+ 351
1462
+ 352
1463
+ 353
1464
+ 354
1465
+ 355
1466
+ 356
1467
+ 357
1468
+ 358
1469
+ 359
1470
+ 360
1471
+ 361
1472
+ 362
1473
+ 363
1474
+ 364
1475
+ 365
1476
+ 366
1477
+ 367
1478
+ 368
1479
+ 369
1480
+ 370
1481
+ 371
1482
+ 372
1483
+ 373
1484
+ 374
1485
+ 375
1486
+ 376
1487
+ 377
1488
+ 378
1489
+ 379
1490
+ 380
1491
+ 381
1492
+ 382
1493
+ 383
1494
+ 384
1495
+ 385
1496
+ 386
1497
+ 387
1498
+ 388
1499
+ 389
1500
+ 390
1501
+ 391
1502
+ 392
1503
+ 393
1504
+ 394
1505
+ 395
1506
+ 396
1507
+ 397
1508
+ 398
1509
+ 399
1510
+ 400
1511
+ 401
1512
+ 402
1513
+ 403
1514
+ 404
1515
+ 405
1516
+ 406
1517
+ 407
1518
+ 408
1519
+ 409
1520
+ 410
1521
+ 411
1522
+ 412
1523
+ 413
1524
+ 414
1525
+ 415
1526
+ 416
1527
+ 417
1528
+ 418
1529
+ 419
1530
+ 420
1531
+ 421
1532
+ 422
1533
+ 423
1534
+ 424
1535
+ 425
1536
+ 426
1537
+ 427
1538
+ 428
1539
+ 429
1540
+ 430
1541
+ 431
1542
+ 432</pre>
1089
1543
  </td>
1090
1544
  <td>
1091
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 230</span>
1545
+ <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 270</span>
1546
+
1547
+ <span class='kw'>class</span> <span class='const'>Application</span>
1548
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:config</span>
1549
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:command</span>
1550
+ <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:logger</span>
1551
+
1552
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>I18n</span>
1553
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Akaer</span><span class='op'>::</span><span class='const'>ApplicationMethods</span><span class='op'>::</span><span class='const'>General</span>
1554
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Akaer</span><span class='op'>::</span><span class='const'>ApplicationMethods</span><span class='op'>::</span><span class='const'>System</span>
1555
+
1556
+ <span class='comment'># Creates a new application.
1557
+ </span> <span class='comment'>#
1558
+ </span> <span class='comment'># @param command [Mamertes::Command] The current Mamertes command.
1559
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for the application.
1560
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
1561
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_i18n_setup'>i18n_setup</span><span class='lparen'>(</span><span class='symbol'>:akaer</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_absolute_path'>absolute_path</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Pathname</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='kw'>__FILE__</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/../../locales/</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
1562
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_i18n'>i18n</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
1563
+
1564
+ <span class='ivar'>@command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span>
1565
+ <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='ivar'>@command</span><span class='period'>.</span><span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_get_options'>get_options</span><span class='period'>.</span><span class='id identifier rubyid_reject'>reject</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='rbrace'>}</span>
1566
+
1567
+ <span class='comment'># Setup logger
1568
+ </span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_start_time'>start_time</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span>
1569
+ <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_get_real_file'>get_real_file</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>log_file</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_default_file'>default_file</span><span class='comma'>,</span> <span class='const'>Logger</span><span class='op'>::</span><span class='const'>INFO</span><span class='rparen'>)</span>
1570
+
1571
+ <span class='comment'># Open configuration
1572
+ </span> <span class='id identifier rubyid_read_configuration'>read_configuration</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
1573
+
1574
+ <span class='kw'>self</span>
1575
+ <span class='kw'>end</span>
1576
+
1577
+ <span class='comment'># Checks if and address is a valid IPv4 address.
1578
+ </span> <span class='comment'>#
1579
+ </span> <span class='comment'># @param address [String] The address to check.
1580
+ </span> <span class='comment'># @return [Boolean] `true` if the address is a valid IPv4 address, `false` otherwise.
1581
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_is_ipv4?'>is_ipv4?</span><span class='lparen'>(</span><span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span>
1582
+ <span class='id identifier rubyid_address'>address</span> <span class='op'>=</span> <span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
1583
+
1584
+ <span class='id identifier rubyid_mo'>mo</span> <span class='op'>=</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\Z</span><span class='regexp_end'>/</span></span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='lparen'>(</span><span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span>
1585
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_mo'>mo</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_mo'>mo</span><span class='period'>.</span><span class='id identifier rubyid_captures'>captures</span><span class='period'>.</span><span class='id identifier rubyid_all?'>all?</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='id identifier rubyid_i'>i</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span> <span class='op'>&lt;</span> <span class='int'>256</span><span class='rbrace'>}</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='kw'>true</span> <span class='op'>:</span> <span class='kw'>false</span>
1586
+ <span class='kw'>end</span>
1092
1587
 
1093
- <span class='kw'>def</span> <span class='id identifier rubyid_action_install'>action_install</span>
1094
- <span class='id identifier rubyid_logger'>logger</span> <span class='op'>=</span> <span class='id identifier rubyid_get_logger'>get_logger</span>
1588
+ <span class='comment'># Checks if and address is a valid IPv6 address.
1589
+ </span> <span class='comment'>#
1590
+ </span> <span class='comment'># @param address [String] The address to check.
1591
+ </span> <span class='comment'># @return [Boolean] `true` if the address is a valid IPv6 address, `false` otherwise.
1592
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_is_ipv6?'>is_ipv6?</span><span class='lparen'>(</span><span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span>
1593
+ <span class='id identifier rubyid_address'>address</span> <span class='op'>=</span> <span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
1594
+
1595
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_catch'>catch</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='rparen'>)</span> <span class='kw'>do</span>
1596
+ <span class='comment'># IPv6 (normal)
1597
+ </span> <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*\Z</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span>
1598
+ <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*)?\Z</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span>
1599
+ <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*)?\Z</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span>
1600
+ <span class='comment'># IPv6 (IPv4 compat)
1601
+ </span> <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span> <span class='op'>&amp;&amp;</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_is_ipv4?'>is_ipv4?</span><span class='lparen'>(</span><span class='backref'>$'</span><span class='rparen'>)</span>
1602
+ <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A[\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:)?</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span> <span class='op'>&amp;&amp;</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_is_ipv4?'>is_ipv4?</span><span class='lparen'>(</span><span class='backref'>$'</span><span class='rparen'>)</span>
1603
+ <span class='id identifier rubyid_throw'>throw</span><span class='lparen'>(</span><span class='symbol'>:valid</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A::([\dA-Fa-f]{1,4}(:[\dA-Fa-f]{1,4})*:)?</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id identifier rubyid_address'>address</span> <span class='op'>&amp;&amp;</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_is_ipv4?'>is_ipv4?</span><span class='lparen'>(</span><span class='backref'>$'</span><span class='rparen'>)</span>
1604
+
1605
+ <span class='kw'>false</span>
1606
+ <span class='kw'>end</span>
1607
+ <span class='kw'>end</span>
1095
1608
 
1096
- <span class='kw'>if</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_is_osx?'>is_osx?</span> <span class='kw'>then</span>
1097
- <span class='id identifier rubyid_logger'>logger</span><span class='period'>.</span><span class='id identifier rubyid_fatal'>fatal</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Install akaer on autolaunch is only available on MacOSX.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_quiet'>quiet</span>
1098
- <span class='kw'>return</span> <span class='kw'>false</span>
1609
+
1610
+ <span class='comment'># Pads a number to make it print friendly.
1611
+ </span> <span class='comment'>#
1612
+ </span> <span class='comment'># @param num [Fixnum] The number to pad.
1613
+ </span> <span class='comment'># @param len [Fixnum] The minimum length of the padded string.
1614
+ </span> <span class='comment'># @return [String] The padded number.
1615
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_pad_number'>pad_number</span><span class='lparen'>(</span><span class='id identifier rubyid_num'>num</span><span class='comma'>,</span> <span class='id identifier rubyid_len'>len</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
1616
+ <span class='id identifier rubyid_num'>num</span><span class='period'>.</span><span class='id identifier rubyid_to_integer'>to_integer</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_rjust'>rjust</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='id identifier rubyid_len'>len</span><span class='period'>.</span><span class='id identifier rubyid_to_integer'>to_integer</span><span class='comma'>,</span> <span class='int'>2</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1099
1617
  <span class='kw'>end</span>
1100
1618
 
1101
- <span class='id identifier rubyid_launch_agent'>launch_agent</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_launch_agent_path'>launch_agent_path</span>
1619
+ <span class='comment'># Gets the current logger of the application.
1620
+ </span> <span class='comment'>#
1621
+ </span> <span class='comment'># @return [Logger] The current logger of the application.
1622
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_get_logger'>get_logger</span>
1623
+ <span class='ivar'>@logger</span> <span class='op'>||=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_log_file'>log_file</span><span class='comma'>,</span> <span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_log_level'>log_level</span><span class='comma'>,</span> <span class='ivar'>@log_formatter</span><span class='rparen'>)</span>
1624
+ <span class='kw'>end</span>
1102
1625
 
1103
- <span class='kw'>begin</span>
1104
- <span class='id identifier rubyid_logger'>logger</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Creating the launch agent in {mark=bright}</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_launch_agent'>launch_agent</span><span class='rbrace'>}</span><span class='tstring_content'>{/mark} ...</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_quiet'>quiet</span>
1626
+ <span class='comment'># Gets the path for the launch agent file.
1627
+ </span> <span class='comment'>#
1628
+ </span> <span class='comment'># @param name [String] The base name for the agent.
1629
+ </span> <span class='comment'># @return [String] The path for the launch agent file.
1630
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_launch_agent_path'>launch_agent_path</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>it.cowtech.akaer</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1631
+ <span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HOME</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/Library/LaunchAgents/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='rbrace'>}</span><span class='tstring_content'>.plist</span><span class='tstring_end'>&quot;</span></span>
1632
+ <span class='kw'>end</span>
1105
1633
 
1106
- <span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='gvar'>$ARGV</span> <span class='op'>?</span> <span class='gvar'>$ARGV</span><span class='lbracket'>[</span><span class='int'>0</span><span class='comma'>,</span> <span class='gvar'>$ARGV</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>-</span> <span class='int'>1</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1634
+ <span class='comment'># Executes a shell command.
1635
+ </span> <span class='comment'>#
1636
+ </span> <span class='comment'># @param command [String] The command to execute.
1637
+ </span> <span class='comment'># @return [Boolean] `true` if command succeeded, `false` otherwise.
1638
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_execute_command'>execute_command</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
1639
+ <span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_system'>system</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
1640
+ <span class='kw'>end</span>
1107
1641
 
1108
- <span class='id identifier rubyid_plist'>plist</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>KeepAlive</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Label</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>it.cowtech.akaer</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Program</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='lparen'>(</span><span class='op'>::</span><span class='const'>Pathname</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>Dir</span><span class='period'>.</span><span class='id identifier rubyid_pwd'>pwd</span><span class='rparen'>)</span> <span class='op'>+</span> <span class='gvar'>$0</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ProgramArguments</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>RunAtLoad</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='kw'>true</span><span class='rbrace'>}</span>
1109
- <span class='op'>::</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='id identifier rubyid_launch_agent'>launch_agent</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>w</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_f'>f</span><span class='op'>|</span>
1110
- <span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='id identifier rubyid_plist'>plist</span><span class='period'>.</span><span class='id identifier rubyid_to_json'>to_json</span><span class='rparen'>)</span>
1111
- <span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_flush'>flush</span>
1112
- <span class='rbrace'>}</span>
1113
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_execute_command'>execute_command</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>plutil -convert binary1 \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_launch_agent'>launch_agent</span><span class='rbrace'>}</span><span class='tstring_content'>\&quot;</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1114
- <span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1115
- <span class='id identifier rubyid_logger'>logger</span><span class='period'>.</span><span class='id identifier rubyid_error'>error</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Cannot create the launch agent.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_quiet'>quiet</span>
1116
- <span class='kw'>return</span> <span class='kw'>false</span>
1642
+ <span class='comment'># Computes the list of address to manage.
1643
+ </span> <span class='comment'>#
1644
+ </span> <span class='comment'># @param type [Symbol] The type of addresses to consider. Valid values are `:ipv4`, `:ipv6`, otherwise all addresses are considered.
1645
+ </span> <span class='comment'># @return [Array] The list of addresses to add or remove from the interface.
1646
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_compute_addresses'>compute_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='symbol'>:all</span><span class='rparen'>)</span>
1647
+ <span class='id identifier rubyid_config'>config</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span>
1648
+ <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_addresses'>addresses</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>?</span> <span class='id identifier rubyid_filter_addresses'>filter_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_generate_addresses'>generate_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
1117
1649
  <span class='kw'>end</span>
1118
1650
 
1119
- <span class='kw'>begin</span>
1120
- <span class='id identifier rubyid_logger'>logger</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Loading the launch agent ...</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_quiet'>quiet</span>
1121
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_execute_command'>execute_command</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>launchctl load -w \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_launch_agent'>launch_agent</span><span class='rbrace'>}</span><span class='tstring_content'>\&quot; &gt; /dev/null 2&gt;&amp;1</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1122
- <span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1123
- <span class='id identifier rubyid_logger'>logger</span><span class='period'>.</span><span class='id identifier rubyid_error'>error</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Cannot load the launch agent.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_quiet'>quiet</span>
1124
- <span class='kw'>return</span> <span class='kw'>false</span>
1651
+ <span class='comment'># Returns a unique (singleton) instance of the application.
1652
+ </span> <span class='comment'>#
1653
+ </span> <span class='comment'># @param command [Mamertes::Command] The current Mamertes command.
1654
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for the application.
1655
+ </span> <span class='comment'># @param force [Boolean] If to force recreation of the instance.
1656
+ </span> <span class='comment'># @return [Application] The unique (singleton) instance of the application.
1657
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_force'>force</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
1658
+ <span class='ivar'>@instance</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_force'>force</span>
1659
+ <span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>Akaer</span><span class='op'>::</span><span class='const'>Application</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
1125
1660
  <span class='kw'>end</span>
1126
1661
 
1127
- <span class='kw'>true</span>
1662
+ <span class='id identifier rubyid_private'>private</span>
1663
+ <span class='comment'># Reads the configuration.
1664
+ </span> <span class='comment'>#
1665
+ </span> <span class='comment'># @param options [Hash] The options to read.
1666
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_read_configuration'>read_configuration</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
1667
+ <span class='kw'>begin</span>
1668
+ <span class='ivar'>@config</span> <span class='op'>=</span> <span class='const'>Akaer</span><span class='op'>::</span><span class='const'>Configuration</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>configuration</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='ivar'>@logger</span><span class='rparen'>)</span>
1669
+ <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='kw'>nil</span>
1670
+ <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_get_logger'>get_logger</span>
1671
+ <span class='kw'>rescue</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>InvalidConfiguration</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1672
+ <span class='ivar'>@logger</span> <span class='op'>?</span> <span class='ivar'>@logger</span><span class='period'>.</span><span class='id identifier rubyid_fatal'>fatal</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>STDERR</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_fatal'>fatal</span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_logging_failed'>logging_failed</span><span class='lparen'>(</span><span class='id identifier rubyid_log_file'>log_file</span><span class='rparen'>)</span><span class='rparen'>)</span>
1673
+ <span class='id identifier rubyid_raise'>raise</span> <span class='op'>::</span><span class='const'>SystemExit</span>
1674
+ <span class='kw'>end</span>
1675
+ <span class='kw'>end</span>
1676
+
1677
+ <span class='comment'># Filters a list of addresses to return just certain type(s).
1678
+ </span> <span class='comment'>#
1679
+ </span> <span class='comment'># @param config [Configuration] The current configuration.
1680
+ </span> <span class='comment'># @param type [Symbol] The type of addresses to return.
1681
+ </span> <span class='comment'># @return [Array] A list of IPs.
1682
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_filter_addresses'>filter_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
1683
+ <span class='id identifier rubyid_filters'>filters</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='symbol'>:ipv4</span><span class='comma'>,</span> <span class='symbol'>:ipv6</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='id identifier rubyid_i'>i</span> <span class='op'>||</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='symbol'>:all</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span>
1684
+
1685
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_addresses'>addresses</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_address'>address</span><span class='op'>|</span>
1686
+ <span class='id identifier rubyid_filters'>filters</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_filter'>filter</span><span class='op'>|</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>is_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filter'>filter</span><span class='rbrace'>}</span><span class='tstring_content'>?</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
1687
+ <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span><span class='period'>.</span><span class='id identifier rubyid_uniq'>uniq</span>
1688
+ <span class='kw'>end</span>
1689
+
1690
+ <span class='comment'># Generates a list of addresses which are immediate successors of a start address.
1691
+ </span> <span class='comment'>#
1692
+ </span> <span class='comment'># @param config [Configuration] The current configuration.
1693
+ </span> <span class='comment'># @param type [Symbol] The type of addresses to return.
1694
+ </span> <span class='comment'># @return [Array] A list of IPs.
1695
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_generate_addresses'>generate_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
1696
+ <span class='kw'>begin</span>
1697
+ <span class='id identifier rubyid_ip'>ip</span> <span class='op'>=</span> <span class='const'>IPAddr</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_start_address'>start_address</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span>
1698
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span> <span class='kw'>if</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>!=</span> <span class='symbol'>:all</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_ip'>ip</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='rbrace'>}</span><span class='tstring_content'>?</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1699
+
1700
+ <span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_aliases'>aliases</span> <span class='op'>&gt;</span> <span class='int'>0</span> <span class='op'>?</span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_aliases'>aliases</span> <span class='op'>:</span> <span class='int'>5</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_times'>times</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span>
1701
+ <span class='id identifier rubyid_current'>current</span> <span class='op'>=</span> <span class='id identifier rubyid_ip'>ip</span>
1702
+ <span class='id identifier rubyid_ip'>ip</span> <span class='op'>=</span> <span class='id identifier rubyid_ip'>ip</span><span class='period'>.</span><span class='id identifier rubyid_succ'>succ</span>
1703
+ <span class='id identifier rubyid_current'>current</span>
1704
+ <span class='rbrace'>}</span>
1705
+ <span class='kw'>rescue</span> <span class='const'>ArgumentError</span>
1706
+ <span class='lbracket'>[</span><span class='rbracket'>]</span>
1707
+ <span class='kw'>end</span>
1708
+ <span class='kw'>end</span>
1128
1709
  <span class='kw'>end</span></pre>
1129
1710
  </td>
1130
1711
  </tr>
1131
1712
  </table>
1132
1713
  </div>
1133
1714
 
1715
+
1716
+ <span id="logger=-instance_method"></span>
1134
1717
  <div class="method_details ">
1135
- <h3 class="signature " id="action_remove-instance_method">
1718
+ <h3 class="signature " id="logger-instance_method">
1136
1719
 
1137
- - (<tt>Boolean</tt>) <strong>action_remove</strong>
1720
+ - (<tt>Object</tt>) <strong>logger</strong>
1138
1721
 
1139
1722
 
1140
1723
 
@@ -1142,30 +1725,13 @@
1142
1725
 
1143
1726
  </h3><div class="docstring">
1144
1727
  <div class="discussion">
1145
- <p>Removes aliases from the interface.</p>
1728
+ <p>Returns the value of attribute logger</p>
1146
1729
 
1147
1730
 
1148
1731
  </div>
1149
1732
  </div>
1150
- <div class="tags">
1151
-
1152
- <p class="tag_title">Returns:</p>
1153
- <ul class="return">
1154
-
1155
- <li>
1156
-
1157
-
1158
- <span class='type'>(<tt>Boolean</tt>)</span>
1159
-
1160
-
1161
-
1162
- &mdash;
1163
- <div class='inline'><p><code>true</code> if action succedeed, <code>false</code> otherwise.</p>
1164
- </div>
1165
-
1166
- </li>
1733
+ <div class="tags">
1167
1734
 
1168
- </ul>
1169
1735
 
1170
1736
  </div><table class="source_code">
1171
1737
  <tr>
@@ -1173,43 +1739,32 @@
1173
1739
  <pre class="lines">
1174
1740
 
1175
1741
 
1176
- 214
1177
- 215
1178
- 216
1179
- 217
1180
- 218
1181
- 219
1182
- 220
1183
- 221
1184
- 222
1185
- 223
1186
- 224
1187
- 225</pre>
1742
+ 273
1743
+ 274
1744
+ 275</pre>
1188
1745
  </td>
1189
1746
  <td>
1190
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 214</span>
1191
-
1192
- <span class='kw'>def</span> <span class='id identifier rubyid_action_remove'>action_remove</span>
1193
- <span class='id identifier rubyid_addresses'>addresses</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_compute_addresses'>compute_addresses</span>
1194
-
1195
- <span class='kw'>if</span> <span class='id identifier rubyid_addresses'>addresses</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='kw'>then</span>
1196
- <span class='comment'># Now, for every address, call the command
1197
- </span> <span class='id identifier rubyid_addresses'>addresses</span><span class='period'>.</span><span class='id identifier rubyid_all?'>all?</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_address'>address</span><span class='op'>|</span>
1198
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_manage'>manage</span><span class='lparen'>(</span><span class='symbol'>:remove</span><span class='comma'>,</span> <span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span>
1199
- <span class='rbrace'>}</span>
1200
- <span class='kw'>else</span>
1201
- <span class='ivar'>@logger</span><span class='period'>.</span><span class='id identifier rubyid_error'>error</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>No valid addresses to remove from the interface found.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_quiet'>quiet</span>
1202
- <span class='kw'>end</span>
1747
+ <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 273</span>
1748
+
1749
+ <span class='kw'>def</span> <span class='id identifier rubyid_logger'>logger</span>
1750
+ <span class='ivar'>@logger</span>
1203
1751
  <span class='kw'>end</span></pre>
1204
1752
  </td>
1205
1753
  </tr>
1206
1754
  </table>
1207
1755
  </div>
1208
1756
 
1209
- <div class="method_details ">
1210
- <h3 class="signature " id="action_uninstall-instance_method">
1757
+ </div>
1758
+
1759
+
1760
+ <div id="class_method_details" class="method_details_list">
1761
+ <h2>Class Method Details</h2>
1762
+
1763
+
1764
+ <div class="method_details first">
1765
+ <h3 class="signature first" id="instance-class_method">
1211
1766
 
1212
- - (<tt>Boolean</tt>) <strong>action_uninstall</strong>
1767
+ + (<tt><span class='object_link'><a href="" title="Akaer::Application (class)">Application</a></span></tt>) <strong>instance</strong>(command, locale = nil, force = false)
1213
1768
 
1214
1769
 
1215
1770
 
@@ -1217,25 +1772,78 @@
1217
1772
 
1218
1773
  </h3><div class="docstring">
1219
1774
  <div class="discussion">
1220
- <p>Uninstalls the application from the autolaunch.</p>
1775
+ <p>Returns a unique (singleton) instance of the application.</p>
1221
1776
 
1222
1777
 
1223
1778
  </div>
1224
1779
  </div>
1225
1780
  <div class="tags">
1781
+ <p class="tag_title">Parameters:</p>
1782
+ <ul class="param">
1783
+
1784
+ <li>
1785
+
1786
+ <span class='name'>command</span>
1787
+
1788
+
1789
+ <span class='type'>(<tt>Mamertes::Command</tt>)</span>
1790
+
1791
+
1792
+
1793
+ &mdash;
1794
+ <div class='inline'><p>The current Mamertes command.</p>
1795
+ </div>
1796
+
1797
+ </li>
1798
+
1799
+ <li>
1800
+
1801
+ <span class='name'>locale</span>
1802
+
1803
+
1804
+ <span class='type'>(<tt>Symbol</tt>)</span>
1805
+
1806
+
1807
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
1808
+
1809
+
1810
+ &mdash;
1811
+ <div class='inline'><p>The locale to use for the application.</p>
1812
+ </div>
1813
+
1814
+ </li>
1815
+
1816
+ <li>
1817
+
1818
+ <span class='name'>force</span>
1819
+
1820
+
1821
+ <span class='type'>(<tt>Boolean</tt>)</span>
1822
+
1823
+
1824
+ <em class="default">(defaults to: <tt>false</tt>)</em>
1825
+
1826
+
1827
+ &mdash;
1828
+ <div class='inline'><p>If to force recreation of the instance.</p>
1829
+ </div>
1830
+
1831
+ </li>
1226
1832
 
1833
+ </ul>
1834
+
1227
1835
  <p class="tag_title">Returns:</p>
1228
1836
  <ul class="return">
1229
1837
 
1230
1838
  <li>
1231
1839
 
1232
1840
 
1233
- <span class='type'>(<tt>Boolean</tt>)</span>
1841
+ <span class='type'>(<tt><span class='object_link'><a href="" title="Akaer::Application (class)">Application</a></span></tt>)</span>
1234
1842
 
1235
1843
 
1236
1844
 
1237
1845
  &mdash;
1238
- <div class='inline'><p><code>true</code> if action succedeed, <code>false</code> otherwise.</p>
1846
+ <div class='inline'><p>The unique (singleton) instance of the application.</p>
1239
1847
  </div>
1240
1848
 
1241
1849
  </li>
@@ -1248,73 +1856,31 @@
1248
1856
  <pre class="lines">
1249
1857
 
1250
1858
 
1251
- 270
1252
- 271
1253
- 272
1254
- 273
1255
- 274
1256
- 275
1257
- 276
1258
- 277
1259
- 278
1260
- 279
1261
- 280
1262
- 281
1263
- 282
1264
- 283
1265
- 284
1266
- 285
1267
- 286
1268
- 287
1269
- 288
1270
- 289
1271
- 290
1272
- 291
1273
- 292
1274
- 293
1275
- 294
1276
- 295
1277
- 296
1278
- 297</pre>
1859
+ 380
1860
+ 381
1861
+ 382
1862
+ 383</pre>
1279
1863
  </td>
1280
1864
  <td>
1281
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 270</span>
1282
-
1283
- <span class='kw'>def</span> <span class='id identifier rubyid_action_uninstall'>action_uninstall</span>
1284
- <span class='id identifier rubyid_logger'>logger</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_get_logger'>get_logger</span>
1865
+ <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 380</span>
1285
1866
 
1286
- <span class='kw'>if</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_is_osx?'>is_osx?</span> <span class='kw'>then</span>
1287
- <span class='id identifier rubyid_logger'>logger</span><span class='period'>.</span><span class='id identifier rubyid_fatal'>fatal</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Install akaer on autolaunch is only available on MacOSX.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_quiet'>quiet</span>
1288
- <span class='kw'>return</span> <span class='kw'>false</span>
1289
- <span class='kw'>end</span>
1290
-
1291
- <span class='id identifier rubyid_launch_agent'>launch_agent</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_launch_agent_path'>launch_agent_path</span>
1292
-
1293
- <span class='comment'># Unload the launch agent.
1294
- </span> <span class='kw'>begin</span>
1295
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_execute_command'>execute_command</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>launchctl unload -w \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_launch_agent'>launch_agent</span><span class='rbrace'>}</span><span class='tstring_content'>\&quot; &gt; /dev/null 2&gt;&amp;1</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1296
- <span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1297
- <span class='id identifier rubyid_logger'>logger</span><span class='period'>.</span><span class='id identifier rubyid_warn'>warn</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Cannot unload the launch agent.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_quiet'>quiet</span>
1298
- <span class='kw'>end</span>
1299
-
1300
- <span class='comment'># Delete the launch agent.
1301
- </span> <span class='kw'>begin</span>
1302
- <span class='id identifier rubyid_logger'>logger</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Deleting the launch agent </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_launch_agent'>launch_agent</span><span class='rbrace'>}</span><span class='tstring_content'> ...</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1303
- <span class='op'>::</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_launch_agent'>launch_agent</span><span class='rparen'>)</span>
1304
- <span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1305
- <span class='id identifier rubyid_logger'>logger</span><span class='period'>.</span><span class='id identifier rubyid_warn'>warn</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Cannot delete the launch agent.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_quiet'>quiet</span>
1306
- <span class='kw'>return</span> <span class='kw'>false</span>
1307
- <span class='kw'>end</span>
1308
-
1309
- <span class='kw'>true</span>
1867
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_force'>force</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
1868
+ <span class='ivar'>@instance</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_force'>force</span>
1869
+ <span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>Akaer</span><span class='op'>::</span><span class='const'>Application</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_locale'>locale</span><span class='rparen'>)</span>
1310
1870
  <span class='kw'>end</span></pre>
1311
1871
  </td>
1312
1872
  </tr>
1313
1873
  </table>
1314
1874
  </div>
1315
1875
 
1316
- <div class="method_details ">
1317
- <h3 class="signature " id="compute_addresses-instance_method">
1876
+ </div>
1877
+
1878
+ <div id="instance_method_details" class="method_details_list">
1879
+ <h2>Instance Method Details</h2>
1880
+
1881
+
1882
+ <div class="method_details first">
1883
+ <h3 class="signature first" id="compute_addresses-instance_method">
1318
1884
 
1319
1885
  - (<tt>Array</tt>) <strong>compute_addresses</strong>(type = :all)
1320
1886
 
@@ -1376,61 +1942,17 @@
1376
1942
  <pre class="lines">
1377
1943
 
1378
1944
 
1379
- 136
1380
- 137
1381
- 138
1382
- 139
1383
- 140
1384
- 141
1385
- 142
1386
- 143
1387
- 144
1388
- 145
1389
- 146
1390
- 147
1391
- 148
1392
- 149
1393
- 150
1394
- 151
1395
- 152
1396
- 153
1397
- 154
1398
- 155
1399
- 156
1400
- 157
1401
- 158
1402
- 159
1403
- 160
1404
- 161</pre>
1945
+ 369
1946
+ 370
1947
+ 371
1948
+ 372</pre>
1405
1949
  </td>
1406
1950
  <td>
1407
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 136</span>
1951
+ <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 369</span>
1408
1952
 
1409
1953
  <span class='kw'>def</span> <span class='id identifier rubyid_compute_addresses'>compute_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='symbol'>:all</span><span class='rparen'>)</span>
1410
- <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1411
-
1412
- <span class='kw'>if</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_addresses'>addresses</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='comment'># We have an explicit list
1413
- </span> <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_addresses'>addresses</span>
1414
-
1415
- <span class='comment'># Now filter the addresses
1416
- </span> <span class='id identifier rubyid_filters'>filters</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_type'>type</span> <span class='op'>!=</span> <span class='symbol'>:ipv6</span> <span class='op'>?</span> <span class='symbol'>:ipv4</span> <span class='op'>:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>!=</span> <span class='symbol'>:ipv4</span> <span class='op'>?</span> <span class='symbol'>:ipv6</span> <span class='op'>:</span> <span class='kw'>nil</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span>
1417
- <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='id identifier rubyid_rv'>rv</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_address'>address</span><span class='op'>|</span>
1418
- <span class='id identifier rubyid_filters'>filters</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_filter'>filter</span><span class='op'>|</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>is_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filter'>filter</span><span class='rbrace'>}</span><span class='tstring_content'>?</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
1419
- <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span><span class='period'>.</span><span class='id identifier rubyid_uniq'>uniq</span>
1420
- <span class='kw'>else</span>
1421
- <span class='kw'>begin</span>
1422
- <span class='id identifier rubyid_ip'>ip</span> <span class='op'>=</span> <span class='const'>IPAddr</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_start_address'>start_address</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span><span class='rparen'>)</span>
1423
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span> <span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='symbol'>:ipv4</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_ip'>ip</span><span class='period'>.</span><span class='id identifier rubyid_ipv4?'>ipv4?</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='symbol'>:ipv6</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_ip'>ip</span><span class='period'>.</span><span class='id identifier rubyid_ipv6?'>ipv6?</span><span class='rparen'>)</span>
1424
-
1425
- <span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_aliases'>aliases</span> <span class='op'>&gt;</span> <span class='int'>0</span> <span class='op'>?</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_aliases'>aliases</span> <span class='op'>:</span> <span class='int'>5</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_times'>times</span> <span class='kw'>do</span>
1426
- <span class='id identifier rubyid_rv'>rv</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_ip'>ip</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1427
- <span class='id identifier rubyid_ip'>ip</span> <span class='op'>=</span> <span class='id identifier rubyid_ip'>ip</span><span class='period'>.</span><span class='id identifier rubyid_succ'>succ</span>
1428
- <span class='kw'>end</span>
1429
- <span class='kw'>rescue</span> <span class='const'>ArgumentError</span>
1430
- <span class='kw'>end</span>
1431
- <span class='kw'>end</span>
1432
-
1433
- <span class='id identifier rubyid_rv'>rv</span>
1954
+ <span class='id identifier rubyid_config'>config</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span>
1955
+ <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_addresses'>addresses</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='op'>?</span> <span class='id identifier rubyid_filter_addresses'>filter_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_generate_addresses'>generate_addresses</span><span class='lparen'>(</span><span class='id identifier rubyid_config'>config</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
1434
1956
  <span class='kw'>end</span></pre>
1435
1957
  </td>
1436
1958
  </tr>
@@ -1498,12 +2020,12 @@
1498
2020
  <pre class="lines">
1499
2021
 
1500
2022
 
1501
- 128
1502
- 129
1503
- 130</pre>
2023
+ 361
2024
+ 362
2025
+ 363</pre>
1504
2026
  </td>
1505
2027
  <td>
1506
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 128</span>
2028
+ <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 361</span>
1507
2029
 
1508
2030
  <span class='kw'>def</span> <span class='id identifier rubyid_execute_command'>execute_command</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
1509
2031
  <span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_system'>system</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
@@ -1555,12 +2077,12 @@
1555
2077
  <pre class="lines">
1556
2078
 
1557
2079
 
1558
- 112
1559
- 113
1560
- 114</pre>
2080
+ 345
2081
+ 346
2082
+ 347</pre>
1561
2083
  </td>
1562
2084
  <td>
1563
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 112</span>
2085
+ <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 345</span>
1564
2086
 
1565
2087
  <span class='kw'>def</span> <span class='id identifier rubyid_get_logger'>get_logger</span>
1566
2088
  <span class='ivar'>@logger</span> <span class='op'>||=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_log_file'>log_file</span><span class='comma'>,</span> <span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_log_level'>log_level</span><span class='comma'>,</span> <span class='ivar'>@log_formatter</span><span class='rparen'>)</span>
@@ -1631,15 +2153,15 @@
1631
2153
  <pre class="lines">
1632
2154
 
1633
2155
 
1634
- 71
1635
- 72
1636
- 73
1637
- 74
1638
- 75
1639
- 76</pre>
2156
+ 304
2157
+ 305
2158
+ 306
2159
+ 307
2160
+ 308
2161
+ 309</pre>
1640
2162
  </td>
1641
2163
  <td>
1642
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 71</span>
2164
+ <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 304</span>
1643
2165
 
1644
2166
  <span class='kw'>def</span> <span class='id identifier rubyid_is_ipv4?'>is_ipv4?</span><span class='lparen'>(</span><span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span>
1645
2167
  <span class='id identifier rubyid_address'>address</span> <span class='op'>=</span> <span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
@@ -1713,25 +2235,25 @@
1713
2235
  <pre class="lines">
1714
2236
 
1715
2237
 
1716
- 82
1717
- 83
1718
- 84
1719
- 85
1720
- 86
1721
- 87
1722
- 88
1723
- 89
1724
- 90
1725
- 91
1726
- 92
1727
- 93
1728
- 94
1729
- 95
1730
- 96
1731
- 97</pre>
2238
+ 315
2239
+ 316
2240
+ 317
2241
+ 318
2242
+ 319
2243
+ 320
2244
+ 321
2245
+ 322
2246
+ 323
2247
+ 324
2248
+ 325
2249
+ 326
2250
+ 327
2251
+ 328
2252
+ 329
2253
+ 330</pre>
1732
2254
  </td>
1733
2255
  <td>
1734
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 82</span>
2256
+ <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 315</span>
1735
2257
 
1736
2258
  <span class='kw'>def</span> <span class='id identifier rubyid_is_ipv6?'>is_ipv6?</span><span class='lparen'>(</span><span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span>
1737
2259
  <span class='id identifier rubyid_address'>address</span> <span class='op'>=</span> <span class='id identifier rubyid_address'>address</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span>
@@ -1752,65 +2274,6 @@
1752
2274
  </td>
1753
2275
  </tr>
1754
2276
  </table>
1755
- </div>
1756
-
1757
- <div class="method_details ">
1758
- <h3 class="signature " id="is_osx?-instance_method">
1759
-
1760
- - (<tt>Boolean</tt>) <strong>is_osx?</strong>
1761
-
1762
-
1763
-
1764
-
1765
-
1766
- </h3><div class="docstring">
1767
- <div class="discussion">
1768
- <p>Checks if we are running on MacOS X.</p>
1769
-
1770
- <p>System services are only available on that platform.</p>
1771
-
1772
-
1773
- </div>
1774
- </div>
1775
- <div class="tags">
1776
-
1777
- <p class="tag_title">Returns:</p>
1778
- <ul class="return">
1779
-
1780
- <li>
1781
-
1782
-
1783
- <span class='type'>(<tt>Boolean</tt>)</span>
1784
-
1785
-
1786
-
1787
- &mdash;
1788
- <div class='inline'><p><code>true</code> if the current platform is MacOS X, <code>false</code> otherwise.</p>
1789
- </div>
1790
-
1791
- </li>
1792
-
1793
- </ul>
1794
-
1795
- </div><table class="source_code">
1796
- <tr>
1797
- <td>
1798
- <pre class="lines">
1799
-
1800
-
1801
- 63
1802
- 64
1803
- 65</pre>
1804
- </td>
1805
- <td>
1806
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 63</span>
1807
-
1808
- <span class='kw'>def</span> <span class='id identifier rubyid_is_osx?'>is_osx?</span>
1809
- <span class='op'>::</span><span class='const'>Config</span><span class='op'>::</span><span class='const'>CONFIG</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>host_os</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^darwin</span><span class='regexp_end'>/</span></span>
1810
- <span class='kw'>end</span></pre>
1811
- </td>
1812
- </tr>
1813
- </table>
1814
2277
  </div>
1815
2278
 
1816
2279
  <div class="method_details ">
@@ -1876,12 +2339,12 @@
1876
2339
  <pre class="lines">
1877
2340
 
1878
2341
 
1879
- 120
1880
- 121
1881
- 122</pre>
2342
+ 353
2343
+ 354
2344
+ 355</pre>
1882
2345
  </td>
1883
2346
  <td>
1884
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 120</span>
2347
+ <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 353</span>
1885
2348
 
1886
2349
  <span class='kw'>def</span> <span class='id identifier rubyid_launch_agent_path'>launch_agent_path</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>it.cowtech.akaer</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1887
2350
  <span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>HOME</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/Library/LaunchAgents/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='rbrace'>}</span><span class='tstring_content'>.plist</span><span class='tstring_end'>&quot;</span></span>
@@ -1889,143 +2352,6 @@
1889
2352
  </td>
1890
2353
  </tr>
1891
2354
  </table>
1892
- </div>
1893
-
1894
- <div class="method_details ">
1895
- <h3 class="signature " id="manage-instance_method">
1896
-
1897
- - (<tt>Boolean</tt>) <strong>manage</strong>(type, address)
1898
-
1899
-
1900
-
1901
-
1902
-
1903
- </h3><div class="docstring">
1904
- <div class="discussion">
1905
- <p>Adds or removes an alias from the interface.</p>
1906
-
1907
-
1908
- </div>
1909
- </div>
1910
- <div class="tags">
1911
- <p class="tag_title">Parameters:</p>
1912
- <ul class="param">
1913
-
1914
- <li>
1915
-
1916
- <span class='name'>type</span>
1917
-
1918
-
1919
- <span class='type'>(<tt>Symbol</tt>)</span>
1920
-
1921
-
1922
-
1923
- &mdash;
1924
- <div class='inline'><p>The operation to execute. Can be <code>:add</code> or <code>:remove</code>.</p>
1925
- </div>
1926
-
1927
- </li>
1928
-
1929
- <li>
1930
-
1931
- <span class='name'>address</span>
1932
-
1933
-
1934
- <span class='type'>(<tt>String</tt>)</span>
1935
-
1936
-
1937
-
1938
- &mdash;
1939
- <div class='inline'><p>The address to manage.</p>
1940
- </div>
1941
-
1942
- </li>
1943
-
1944
- </ul>
1945
-
1946
- <p class="tag_title">Returns:</p>
1947
- <ul class="return">
1948
-
1949
- <li>
1950
-
1951
-
1952
- <span class='type'>(<tt>Boolean</tt>)</span>
1953
-
1954
-
1955
-
1956
- &mdash;
1957
- <div class='inline'><p><code>true</code> if operation succedeed, <code>false</code> otherwise.</p>
1958
- </div>
1959
-
1960
- </li>
1961
-
1962
- </ul>
1963
-
1964
- </div><table class="source_code">
1965
- <tr>
1966
- <td>
1967
- <pre class="lines">
1968
-
1969
-
1970
- 168
1971
- 169
1972
- 170
1973
- 171
1974
- 172
1975
- 173
1976
- 174
1977
- 175
1978
- 176
1979
- 177
1980
- 178
1981
- 179
1982
- 180
1983
- 181
1984
- 182
1985
- 183
1986
- 184
1987
- 185
1988
- 186
1989
- 187
1990
- 188
1991
- 189
1992
- 190
1993
- 191
1994
- 192
1995
- 193</pre>
1996
- </td>
1997
- <td>
1998
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 168</span>
1999
-
2000
- <span class='kw'>def</span> <span class='id identifier rubyid_manage'>manage</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span>
2001
- <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='kw'>true</span>
2002
-
2003
- <span class='comment'># Compute the command
2004
- </span> <span class='id identifier rubyid_command'>command</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='symbol'>:remove</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_remove_command'>remove_command</span> <span class='op'>:</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_add_command'>add_command</span>
2005
-
2006
- <span class='comment'># Interpolate
2007
- </span> <span class='id identifier rubyid_command'>command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@INTERFACE@</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_interface'>interface</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@ALIAS@</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> &gt; /dev/null 2&gt;&amp;1</span><span class='tstring_end'>&quot;</span></span>
2008
-
2009
- <span class='comment'># Compute the prefix
2010
- </span> <span class='ivar'>@addresses</span> <span class='op'>||=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_compute_addresses'>compute_addresses</span>
2011
- <span class='id identifier rubyid_length'>length</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_pad_number'>pad_number</span><span class='lparen'>(</span><span class='ivar'>@addresses</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='rparen'>)</span>
2012
- <span class='id identifier rubyid_index'>index</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='ivar'>@addresses</span><span class='period'>.</span><span class='id identifier rubyid_index'>index</span><span class='lparen'>(</span><span class='id identifier rubyid_address'>address</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='int'>0</span><span class='rparen'>)</span> <span class='op'>+</span> <span class='int'>1</span>
2013
- <span class='id identifier rubyid_prefix'>prefix</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>{mark=blue}[{mark=bright white}</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_pad_number'>pad_number</span><span class='lparen'>(</span><span class='id identifier rubyid_index'>index</span><span class='comma'>,</span> <span class='id identifier rubyid_length'>length</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='tstring_content'>{mark=reset blue}/{/mark}</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_length'>length</span><span class='rbrace'>}</span><span class='tstring_content'>{/mark}]{/mark}</span><span class='tstring_end'>&quot;</span></span>
2014
-
2015
- <span class='comment'># Now execute
2016
- </span> <span class='kw'>if</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_dry_run'>dry_run</span> <span class='kw'>then</span>
2017
- <span class='ivar'>@logger</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span><span class='lparen'>(</span><span class='ivar'>@command</span><span class='period'>.</span><span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_console'>console</span><span class='period'>.</span><span class='id identifier rubyid_replace_markers'>replace_markers</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_prefix'>prefix</span><span class='rbrace'>}</span><span class='tstring_content'> {mark=bright}</span><span class='embexpr_beg'>#{</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='symbol'>:remove</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Removing</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Adding</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='tstring_content'>{/mark} address {mark=bright}</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_address'>address</span><span class='rbrace'>}</span><span class='tstring_content'>{/mark} </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span> <span class='op'>!=</span> <span class='symbol'>:remove</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>to</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>from</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='tstring_content'> interface {mark=bright}</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_interface'>interface</span><span class='rbrace'>}</span><span class='tstring_content'>{/mark}...</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_quiet'>quiet</span>
2018
- <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_execute_command'>execute_command</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
2019
- <span class='ivar'>@logger</span><span class='period'>.</span><span class='id identifier rubyid_error'>error</span><span class='lparen'>(</span><span class='ivar'>@command</span><span class='period'>.</span><span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_console'>console</span><span class='period'>.</span><span class='id identifier rubyid_replace_markers'>replace_markers</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Cannot {mark=bright}</span><span class='embexpr_beg'>#{</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='symbol'>:remove</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>remove</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>add</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='tstring_content'>{/mark} address {mark=bright}</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_address'>address</span><span class='rbrace'>}</span><span class='tstring_content'>{/mark} </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span> <span class='op'>!=</span> <span class='symbol'>:remove</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>to</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>from</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='tstring_content'> interface {mark=bright}</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_interface'>interface</span><span class='rbrace'>}</span><span class='tstring_content'>{/mark}.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_rv'>rv</span>
2020
- <span class='kw'>else</span>
2021
- <span class='ivar'>@logger</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span><span class='lparen'>(</span><span class='ivar'>@command</span><span class='period'>.</span><span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_console'>console</span><span class='period'>.</span><span class='id identifier rubyid_replace_markers'>replace_markers</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_prefix'>prefix</span><span class='rbrace'>}</span><span class='tstring_content'> I will {mark=bright}</span><span class='embexpr_beg'>#{</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='symbol'>:remove</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>remove</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>add</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='tstring_content'>{/mark} address {mark=bright}</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_address'>address</span><span class='rbrace'>}</span><span class='tstring_content'>{/mark} </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span> <span class='op'>!=</span> <span class='symbol'>:remove</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>to</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>from</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='tstring_content'> interface {mark=bright}</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_interface'>interface</span><span class='rbrace'>}</span><span class='tstring_content'>{/mark}.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_quiet'>quiet</span>
2022
- <span class='kw'>end</span>
2023
-
2024
- <span class='id identifier rubyid_rv'>rv</span>
2025
- <span class='kw'>end</span></pre>
2026
- </td>
2027
- </tr>
2028
- </table>
2029
2355
  </div>
2030
2356
 
2031
2357
  <div class="method_details ">
@@ -2106,12 +2432,12 @@
2106
2432
  <pre class="lines">
2107
2433
 
2108
2434
 
2109
- 105
2110
- 106
2111
- 107</pre>
2435
+ 338
2436
+ 339
2437
+ 340</pre>
2112
2438
  </td>
2113
2439
  <td>
2114
- <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 105</span>
2440
+ <pre class="code"><span class="info file"># File 'lib/akaer/application.rb', line 338</span>
2115
2441
 
2116
2442
  <span class='kw'>def</span> <span class='id identifier rubyid_pad_number'>pad_number</span><span class='lparen'>(</span><span class='id identifier rubyid_num'>num</span><span class='comma'>,</span> <span class='id identifier rubyid_len'>len</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
2117
2443
  <span class='id identifier rubyid_num'>num</span><span class='period'>.</span><span class='id identifier rubyid_to_integer'>to_integer</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_rjust'>rjust</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='id identifier rubyid_len'>len</span><span class='period'>.</span><span class='id identifier rubyid_to_integer'>to_integer</span><span class='comma'>,</span> <span class='int'>2</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
@@ -2126,9 +2452,9 @@
2126
2452
  </div>
2127
2453
 
2128
2454
  <div id="footer">
2129
- Generated on Mon Oct 22 09:21:37 2012 by
2455
+ Generated on Sat Feb 9 17:30:34 2013 by
2130
2456
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2131
- 0.8.2.1 (ruby-1.9.2).
2457
+ 0.8.4.1 (ruby-1.9.3).
2132
2458
  </div>
2133
2459
 
2134
2460
  </body>