devdnsd 1.7.0 → 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: DevDNSd::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
 
@@ -92,11 +92,15 @@
92
92
 
93
93
 
94
94
 
95
+ <dt class="r2">Includes:</dt>
96
+ <dd class="r2"><span class='object_link'><a href="ApplicationMethods/Server.html" title="DevDNSd::ApplicationMethods::Server (module)">DevDNSd::ApplicationMethods::Server</a></span>, <span class='object_link'><a href="ApplicationMethods/System.html" title="DevDNSd::ApplicationMethods::System (module)">DevDNSd::ApplicationMethods::System</a></span>, Lazier::I18n</dd>
97
+
98
+
95
99
 
96
100
 
97
101
 
98
- <dt class="r2 last">Defined in:</dt>
99
- <dd class="r2 last">lib/devdnsd/application.rb</dd>
102
+ <dt class="r1 last">Defined in:</dt>
103
+ <dd class="r1 last">lib/devdnsd/application.rb</dd>
100
104
 
101
105
  </dl>
102
106
  <div class="clear"></div>
@@ -158,7 +162,7 @@
158
162
  <li class="public ">
159
163
  <span class="summary_signature">
160
164
 
161
- <a href="#command-instance_method" title="#command (instance method)">- (Object) <strong>command</strong> </a>
165
+ <a href="#command-instance_method" title="#command (instance method)">- (Mamertes::Command) <strong>command</strong> </a>
162
166
 
163
167
 
164
168
 
@@ -186,7 +190,7 @@
186
190
  <li class="public ">
187
191
  <span class="summary_signature">
188
192
 
189
- <a href="#config-instance_method" title="#config (instance method)">- (Object) <strong>config</strong> </a>
193
+ <a href="#config-instance_method" title="#config (instance method)">- (Configuration) <strong>config</strong> </a>
190
194
 
191
195
 
192
196
 
@@ -214,7 +218,7 @@
214
218
  <li class="public ">
215
219
  <span class="summary_signature">
216
220
 
217
- <a href="#logger-instance_method" title="#logger (instance method)">- (Object) <strong>logger</strong> </a>
221
+ <a href="#locale-instance_method" title="#locale (instance method)">- (Symbol|nil) <strong>locale</strong> </a>
218
222
 
219
223
 
220
224
 
@@ -223,6 +227,8 @@
223
227
 
224
228
 
225
229
 
230
+ <span class="note title readonly">readonly</span>
231
+
226
232
 
227
233
 
228
234
 
@@ -231,29 +237,16 @@
231
237
 
232
238
 
233
239
 
234
- <span class="summary_desc"><div class='inline'><p>The logger for this application.</p>
240
+ <span class="summary_desc"><div class='inline'><p>The current application locale.</p>
235
241
  </div></span>
236
242
 
237
243
  </li>
238
244
 
239
245
 
240
- </ul>
241
-
242
-
243
-
244
-
245
-
246
- <h2>
247
- Class Method Summary
248
- <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
249
- </h2>
250
-
251
- <ul class="summary">
252
-
253
- <li class="public ">
246
+ <li class="public ">
254
247
  <span class="summary_signature">
255
248
 
256
- <a href="#daemon_name-class_method" title="daemon_name (class method)">+ (String) <strong>daemon_name</strong> </a>
249
+ <a href="#logger-instance_method" title="#logger (instance method)">- (Bovem::Logger) <strong>logger</strong> </a>
257
250
 
258
251
 
259
252
 
@@ -261,45 +254,38 @@
261
254
 
262
255
 
263
256
 
257
+
258
+
259
+
264
260
 
265
261
 
266
262
 
267
263
 
268
264
 
269
265
 
270
- <span class="summary_desc"><div class='inline'><p>Returns the name of the daemon.</p>
266
+ <span class="summary_desc"><div class='inline'><p>The logger for this application.</p>
271
267
  </div></span>
272
268
 
273
269
  </li>
274
270
 
275
-
276
- <li class="public ">
277
- <span class="summary_signature">
278
-
279
- <a href="#instance-class_method" title="instance (class method)">+ (Application) <strong>instance</strong>(command = nil, force = false) </a>
280
271
 
272
+ </ul>
273
+
274
+
281
275
 
282
-
283
- </span>
284
-
285
-
286
-
287
-
288
-
289
-
290
-
291
276
 
292
277
 
293
- <span class="summary_desc"><div class='inline'><p>Returns a unique (singleton) instance of the application.</p>
294
- </div></span>
295
-
296
- </li>
278
+ <h2>
279
+ Class Method Summary
280
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
281
+ </h2>
297
282
 
283
+ <ul class="summary">
298
284
 
299
285
  <li class="public ">
300
286
  <span class="summary_signature">
301
287
 
302
- <a href="#pid_directory-class_method" title="pid_directory (class method)">+ (String) <strong>pid_directory</strong> </a>
288
+ <a href="#check_ruby_implementation-class_method" title="check_ruby_implementation (class method)">+ (Object) <strong>check_ruby_implementation</strong> </a>
303
289
 
304
290
 
305
291
 
@@ -313,7 +299,7 @@
313
299
 
314
300
 
315
301
 
316
- <span class="summary_desc"><div class='inline'><p>Returns the standard location of the PID file.</p>
302
+ <span class="summary_desc"><div class='inline'><p>Check if the current implementation supports DevDNSd.</p>
317
303
  </div></span>
318
304
 
319
305
  </li>
@@ -322,7 +308,7 @@
322
308
  <li class="public ">
323
309
  <span class="summary_signature">
324
310
 
325
- <a href="#pid_fn-class_method" title="pid_fn (class method)">+ (String) <strong>pid_fn</strong> </a>
311
+ <a href="#instance-class_method" title="instance (class method)">+ (Application) <strong>instance</strong>(command = nil, locale = nil, force = false) </a>
326
312
 
327
313
 
328
314
 
@@ -336,7 +322,7 @@
336
322
 
337
323
 
338
324
 
339
- <span class="summary_desc"><div class='inline'><p>Returns the complete path of the PID file.</p>
325
+ <span class="summary_desc"><div class='inline'><p>Returns a unique (singleton) instance of the application.</p>
340
326
  </div></span>
341
327
 
342
328
  </li>
@@ -400,7 +386,7 @@
400
386
  <li class="public ">
401
387
  <span class="summary_signature">
402
388
 
403
- <a href="#action_install-instance_method" title="#action_install (instance method)">- (Boolean) <strong>action_install</strong> </a>
389
+ <a href="#get_logger-instance_method" title="#get_logger (instance method)">- (Logger) <strong>get_logger</strong> </a>
404
390
 
405
391
 
406
392
 
@@ -414,7 +400,7 @@
414
400
 
415
401
 
416
402
 
417
- <span class="summary_desc"><div class='inline'><p>Installs the server into the system.</p>
403
+ <span class="summary_desc"><div class='inline'><p>Gets the current logger of the application.</p>
418
404
  </div></span>
419
405
 
420
406
  </li>
@@ -423,13 +409,15 @@
423
409
  <li class="public ">
424
410
  <span class="summary_signature">
425
411
 
426
- <a href="#action_start-instance_method" title="#action_start (instance method)">- (Boolean) <strong>action_start</strong> </a>
412
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (Application) <strong>initialize</strong>(command, locale) </a>
427
413
 
428
414
 
429
415
 
430
416
  </span>
431
417
 
432
418
 
419
+ <span class="note title constructor">constructor</span>
420
+
433
421
 
434
422
 
435
423
 
@@ -437,7 +425,7 @@
437
425
 
438
426
 
439
427
 
440
- <span class="summary_desc"><div class='inline'><p>Starts the server in background.</p>
428
+ <span class="summary_desc"><div class='inline'><p>Creates a new application.</p>
441
429
  </div></span>
442
430
 
443
431
  </li>
@@ -446,7 +434,7 @@
446
434
  <li class="public ">
447
435
  <span class="summary_signature">
448
436
 
449
- <a href="#action_stop-instance_method" title="#action_stop (instance method)">- (Boolean) <strong>action_stop</strong> </a>
437
+ <a href="#on_start-instance_method" title="#on_start (instance method)">- (NilClass) <strong>on_start</strong> </a>
450
438
 
451
439
 
452
440
 
@@ -460,7 +448,7 @@
460
448
 
461
449
 
462
450
 
463
- <span class="summary_desc"><div class='inline'><p>Stops the server in background.</p>
451
+ <span class="summary_desc"><div class='inline'><p>This method is called when the server starts.</p>
464
452
  </div></span>
465
453
 
466
454
  </li>
@@ -469,7 +457,7 @@
469
457
  <li class="public ">
470
458
  <span class="summary_signature">
471
459
 
472
- <a href="#action_uninstall-instance_method" title="#action_uninstall (instance method)">- (Boolean) <strong>action_uninstall</strong> </a>
460
+ <a href="#on_stop-instance_method" title="#on_stop (instance method)">- (NilClass) <strong>on_stop</strong> </a>
473
461
 
474
462
 
475
463
 
@@ -483,43 +471,27 @@
483
471
 
484
472
 
485
473
 
486
- <span class="summary_desc"><div class='inline'><p>Uninstalls the server from the system.</p>
474
+ <span class="summary_desc"><div class='inline'><p>This method is called when the server stop.</p>
487
475
  </div></span>
488
476
 
489
477
  </li>
490
478
 
491
479
 
492
- <li class="public ">
493
- <span class="summary_signature">
494
-
495
- <a href="#dns_update-instance_method" title="#dns_update (instance method)">- (Boolean) <strong>dns_update</strong> </a>
496
-
497
-
498
-
499
- </span>
480
+ </ul>
500
481
 
482
+
483
+
501
484
 
502
485
 
503
486
 
504
487
 
505
488
 
506
489
 
507
-
508
490
 
509
- <span class="summary_desc"><div class='inline'><p>Updates DNS cache.</p>
510
- </div></span>
511
491
 
512
- </li>
492
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="ApplicationMethods/Server.html" title="DevDNSd::ApplicationMethods::Server (module)">DevDNSd::ApplicationMethods::Server</a></span></h3>
493
+ <p class="inherited"><span class='object_link'><a href="ApplicationMethods/Server.html#perform_server-instance_method" title="DevDNSd::ApplicationMethods::Server#perform_server (method)">#perform_server</a></span>, <span class='object_link'><a href="ApplicationMethods/Server.html#process_rule-instance_method" title="DevDNSd::ApplicationMethods::Server#process_rule (method)">#process_rule</a></span>, <span class='object_link'><a href="ApplicationMethods/Server.html#process_rule_in_classes-instance_method" title="DevDNSd::ApplicationMethods::Server#process_rule_in_classes (method)">#process_rule_in_classes</a></span></p>
513
494
 
514
-
515
- <li class="public ">
516
- <span class="summary_signature">
517
-
518
- <a href="#execute_command-instance_method" title="#execute_command (instance method)">- (Boolean) <strong>execute_command</strong>(command) </a>
519
-
520
-
521
-
522
- </span>
523
495
 
524
496
 
525
497
 
@@ -527,874 +499,154 @@
527
499
 
528
500
 
529
501
 
530
-
531
-
532
- <span class="summary_desc"><div class='inline'><p>Executes a shell command.</p>
533
- </div></span>
534
502
 
535
- </li>
536
-
537
-
538
- <li class="public ">
539
- <span class="summary_signature">
540
-
541
- <a href="#get_logger-instance_method" title="#get_logger (instance method)">- (Logger) <strong>get_logger</strong> </a>
542
-
503
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="ApplicationMethods/System.html" title="DevDNSd::ApplicationMethods::System (module)">DevDNSd::ApplicationMethods::System</a></span></h3>
504
+ <p class="inherited"><span class='object_link'><a href="ApplicationMethods/System.html#action_install-instance_method" title="DevDNSd::ApplicationMethods::System#action_install (method)">#action_install</a></span>, <span class='object_link'><a href="ApplicationMethods/System.html#action_start-instance_method" title="DevDNSd::ApplicationMethods::System#action_start (method)">#action_start</a></span>, <span class='object_link'><a href="ApplicationMethods/System.html#action_stop-instance_method" title="DevDNSd::ApplicationMethods::System#action_stop (method)">#action_stop</a></span>, <span class='object_link'><a href="ApplicationMethods/System.html#action_uninstall-instance_method" title="DevDNSd::ApplicationMethods::System#action_uninstall (method)">#action_uninstall</a></span>, <span class='object_link'><a href="ApplicationMethods/System.html#dns_update-instance_method" title="DevDNSd::ApplicationMethods::System#dns_update (method)">#dns_update</a></span>, <span class='object_link'><a href="ApplicationMethods/System.html#execute_command-instance_method" title="DevDNSd::ApplicationMethods::System#execute_command (method)">#execute_command</a></span>, <span class='object_link'><a href="ApplicationMethods/System.html#is_osx%3F-instance_method" title="DevDNSd::ApplicationMethods::System#is_osx? (method)">#is_osx?</a></span>, <span class='object_link'><a href="ApplicationMethods/System.html#launch_agent_path-instance_method" title="DevDNSd::ApplicationMethods::System#launch_agent_path (method)">#launch_agent_path</a></span>, <span class='object_link'><a href="ApplicationMethods/System.html#resolver_path-instance_method" title="DevDNSd::ApplicationMethods::System#resolver_path (method)">#resolver_path</a></span></p>
543
505
 
544
-
545
- </span>
546
-
547
-
548
506
 
549
507
 
508
+ <div id="constructor_details" class="method_details_list">
509
+ <h2>Constructor Details</h2>
550
510
 
511
+ <div class="method_details first">
512
+ <h3 class="signature first" id="initialize-instance_method">
551
513
 
514
+ - (<tt><span class='object_link'><a href="" title="DevDNSd::Application (class)">Application</a></span></tt>) <strong>initialize</strong>(command, locale)
552
515
 
553
516
 
554
517
 
555
- <span class="summary_desc"><div class='inline'><p>Gets the current logger of the application.</p>
556
- </div></span>
518
+
557
519
 
558
- </li>
520
+ </h3><div class="docstring">
521
+ <div class="discussion">
522
+ <p>Creates a new application.</p>
559
523
 
560
-
561
- <li class="public ">
562
- <span class="summary_signature">
563
-
564
- <a href="#initialize-instance_method" title="#initialize (instance method)">- (Application) <strong>initialize</strong>(command) </a>
565
-
566
524
 
567
-
568
- </span>
569
-
570
-
571
- <span class="note title constructor">constructor</span>
572
-
573
-
574
-
525
+ </div>
526
+ </div>
527
+ <div class="tags">
528
+ <p class="tag_title">Parameters:</p>
529
+ <ul class="param">
575
530
 
531
+ <li>
532
+
533
+ <span class='name'>command</span>
534
+
535
+
536
+ <span class='type'>(<tt>Mamertes::Command</tt>)</span>
537
+
538
+
539
+
540
+ &mdash;
541
+ <div class='inline'><p>The current Mamertes command.</p>
542
+ </div>
543
+
544
+ </li>
576
545
 
546
+ <li>
547
+
548
+ <span class='name'>locale</span>
549
+
550
+
551
+ <span class='type'>(<tt>Symbol</tt>)</span>
552
+
553
+
554
+
555
+ &mdash;
556
+ <div class='inline'><p>The locale to use for the application.</p>
557
+ </div>
558
+
559
+ </li>
577
560
 
561
+ </ul>
578
562
 
579
-
580
- <span class="summary_desc"><div class='inline'><p>Creates a new application.</p>
581
- </div></span>
582
-
583
- </li>
584
563
 
585
-
586
- <li class="public ">
587
- <span class="summary_signature">
588
-
589
- <a href="#is_osx%3F-instance_method" title="#is_osx? (instance method)">- (Boolean) <strong>is_osx?</strong> </a>
590
-
564
+ </div><table class="source_code">
565
+ <tr>
566
+ <td>
567
+ <pre class="lines">
591
568
 
592
-
593
- </span>
594
-
595
-
596
-
597
-
598
-
599
-
600
-
601
569
 
602
-
603
- <span class="summary_desc"><div class='inline'><p>Check if we are running on MacOS X.</p>
604
- </div></span>
605
-
606
- </li>
570
+ 395
571
+ 396
572
+ 397
573
+ 398
574
+ 399
575
+ 400
576
+ 401
577
+ 402
578
+ 403
579
+ 404
580
+ 405
581
+ 406
582
+ 407
583
+ 408
584
+ 409
585
+ 410
586
+ 411</pre>
587
+ </td>
588
+ <td>
589
+ <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 395</span>
607
590
 
608
-
609
- <li class="public ">
610
- <span class="summary_signature">
611
-
612
- <a href="#launch_agent_path-instance_method" title="#launch_agent_path (instance method)">- (String) <strong>launch_agent_path</strong>(name = &quot;it.cowtech.devdnsd&quot;) </a>
613
-
591
+ <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>
592
+ <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'>:devdnsd</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>
593
+ <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>
614
594
 
615
-
616
- </span>
617
-
618
-
619
-
620
-
621
-
622
-
623
-
595
+ <span class='ivar'>@locale</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
596
+ <span class='ivar'>@command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span>
597
+ <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>
624
598
 
625
-
626
- <span class="summary_desc"><div class='inline'><p>Gets the path for the launch agent file.</p>
627
- </div></span>
628
-
629
- </li>
599
+ <span class='comment'># Setup logger
600
+ </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>
601
+ <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>
630
602
 
631
-
632
- <li class="public ">
633
- <span class="summary_signature">
634
-
635
- <a href="#on_start-instance_method" title="#on_start (instance method)">- (NilClass) <strong>on_start</strong> </a>
636
-
603
+ <span class='comment'># Open configuration
604
+ </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>
637
605
 
638
-
639
- </span>
640
-
641
-
642
-
643
-
606
+ <span class='kw'>self</span>
607
+ <span class='kw'>end</span></pre>
608
+ </td>
609
+ </tr>
610
+ </table>
611
+ </div>
644
612
 
613
+ </div>
614
+
615
+ <div id="instance_attr_details" class="attr_details">
616
+ <h2>Instance Attribute Details</h2>
617
+
618
+
619
+ <span id=""></span>
620
+ <div class="method_details first">
621
+ <h3 class="signature first" id="command-instance_method">
645
622
 
623
+ - (<tt>Mamertes::Command</tt>) <strong>command</strong> <span class="extras">(readonly)</span>
646
624
 
647
625
 
648
626
 
649
- <span class="summary_desc"><div class='inline'><p>This method is called when the server starts.</p>
650
- </div></span>
627
+
651
628
 
652
- </li>
629
+ </h3><div class="docstring">
630
+ <div class="discussion">
631
+ <p>The Mamertes command.</p>
653
632
 
654
-
655
- <li class="public ">
656
- <span class="summary_signature">
657
-
658
- <a href="#on_stop-instance_method" title="#on_stop (instance method)">- (NilClass) <strong>on_stop</strong> </a>
659
-
660
633
 
661
-
662
- </span>
663
-
664
-
665
-
666
-
667
-
668
-
634
+ </div>
635
+ </div>
636
+ <div class="tags">
669
637
 
670
-
671
-
672
- <span class="summary_desc"><div class='inline'><p>This method is called when the server stop.</p>
673
- </div></span>
674
-
675
- </li>
676
-
677
-
678
- <li class="public ">
679
- <span class="summary_signature">
680
-
681
- <a href="#perform_server-instance_method" title="#perform_server (instance method)">- (Object) <strong>perform_server</strong> </a>
682
-
683
-
684
-
685
- </span>
686
-
687
-
688
-
689
-
690
-
691
-
692
-
693
-
694
-
695
- <span class="summary_desc"><div class='inline'><p>Starts the DNS server.</p>
696
- </div></span>
697
-
698
- </li>
699
-
700
-
701
- <li class="public ">
702
- <span class="summary_signature">
703
-
704
- <a href="#process_rule-instance_method" title="#process_rule (instance method)">- (Object) <strong>process_rule</strong>(rule, type, match_data, transaction) </a>
705
-
706
-
707
-
708
- </span>
709
-
710
-
711
-
712
-
713
-
714
-
715
-
716
-
717
-
718
- <span class="summary_desc"><div class='inline'><p>Processes a DNS rule.</p>
719
- </div></span>
720
-
721
- </li>
722
-
723
-
724
- <li class="public ">
725
- <span class="summary_signature">
726
-
727
- <a href="#resolver_path-instance_method" title="#resolver_path (instance method)">- (String) <strong>resolver_path</strong>(tld = nil) </a>
728
-
729
-
730
-
731
- </span>
732
-
733
-
734
-
735
-
736
-
737
-
738
-
739
-
740
-
741
- <span class="summary_desc"><div class='inline'><p>Gets the path for the resolver file.</p>
742
- </div></span>
743
-
744
- </li>
745
-
746
-
747
- </ul>
748
-
749
-
750
-
751
- <div id="constructor_details" class="method_details_list">
752
- <h2>Constructor Details</h2>
753
-
754
- <div class="method_details first">
755
- <h3 class="signature first" id="initialize-instance_method">
756
-
757
- - (<tt><span class='object_link'><a href="" title="DevDNSd::Application (class)">Application</a></span></tt>) <strong>initialize</strong>(command)
758
-
759
-
760
-
761
-
762
-
763
- </h3><div class="docstring">
764
- <div class="discussion">
765
- <p>Creates a new application.</p>
766
-
767
-
768
- </div>
769
- </div>
770
- <div class="tags">
771
- <p class="tag_title">Parameters:</p>
772
- <ul class="param">
773
-
774
- <li>
775
-
776
- <span class='name'>command</span>
777
-
778
-
779
- <span class='type'>(<tt>Mamertes::Command</tt>)</span>
780
-
781
-
782
-
783
- &mdash;
784
- <div class='inline'><p>The current Mamertes command.</p>
785
- </div>
786
-
787
- </li>
788
-
789
- </ul>
790
-
791
-
792
- </div><table class="source_code">
793
- <tr>
794
- <td>
795
- <pre class="lines">
796
-
797
-
798
- 29
799
- 30
800
- 31
801
- 32
802
- 33
803
- 34
804
- 35
805
- 36
806
- 37
807
- 38
808
- 39
809
- 40
810
- 41
811
- 42
812
- 43
813
- 44
814
- 45
815
- 46
816
- 47
817
- 48
818
- 49
819
- 50
820
- 51
821
- 52
822
- 53
823
- 54
824
- 55
825
- 56
826
- 57
827
- 58</pre>
828
- </td>
829
- <td>
830
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 29</span>
831
-
832
- <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>
833
- <span class='ivar'>@command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span>
834
- <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>
835
-
836
- <span class='comment'># Setup logger
837
- </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>
838
- <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>
839
-
840
- <span class='comment'># Open configuration
841
- </span> <span class='kw'>begin</span>
842
- <span class='id identifier rubyid_overrides'>overrides</span> <span class='op'>=</span> <span class='lbrace'>{</span>
843
- <span class='symbol'>:foreground</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_command'>command</span><span class='period'>.</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'>start</span><span class='tstring_end'>&quot;</span></span> <span class='op'>?</span> <span class='id identifier rubyid_command'>command</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'>foreground</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='op'>:</span> <span class='kw'>false</span><span class='comma'>,</span>
844
- <span class='symbol'>:tld</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'>tld</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>
845
- <span class='symbol'>:port</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'>port</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>
846
- <span class='symbol'>:pid_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'>pid-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>
847
- <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>
848
- <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>
849
- <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>
850
-
851
- <span class='ivar'>@config</span> <span class='op'>=</span> <span class='const'>DevDNSd</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>
852
-
853
- <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='kw'>nil</span>
854
- <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>
855
- <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='comma'>,</span> <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>InvalidRule</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
856
- <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 </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'>. Exiting...</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
857
- <span class='id identifier rubyid_raise'>raise</span> <span class='op'>::</span><span class='const'>SystemExit</span>
858
- <span class='kw'>end</span>
859
-
860
- <span class='kw'>self</span>
861
- <span class='kw'>end</span></pre>
862
- </td>
863
- </tr>
864
- </table>
865
- </div>
866
-
867
- </div>
868
-
869
- <div id="instance_attr_details" class="attr_details">
870
- <h2>Instance Attribute Details</h2>
871
-
872
-
873
- <span id=""></span>
874
- <div class="method_details first">
875
- <h3 class="signature first" id="command-instance_method">
876
-
877
- - (<tt>Object</tt>) <strong>command</strong> <span class="extras">(readonly)</span>
878
-
879
-
880
-
881
-
882
-
883
- </h3><div class="docstring">
884
- <div class="discussion">
885
- <p>The Mamertes command.</p>
886
-
887
-
888
- </div>
889
- </div>
890
- <div class="tags">
891
-
892
-
893
- </div><table class="source_code">
894
- <tr>
895
- <td>
896
- <pre class="lines">
897
-
898
-
899
- 21
900
- 22
901
- 23</pre>
902
- </td>
903
- <td>
904
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 21</span>
905
-
906
- <span class='kw'>def</span> <span class='id identifier rubyid_command'>command</span>
907
- <span class='ivar'>@command</span>
908
- <span class='kw'>end</span></pre>
909
- </td>
910
- </tr>
911
- </table>
912
- </div>
913
-
914
-
915
- <span id=""></span>
916
- <div class="method_details ">
917
- <h3 class="signature " id="config-instance_method">
918
-
919
- - (<tt>Object</tt>) <strong>config</strong> <span class="extras">(readonly)</span>
920
-
921
-
922
-
923
-
924
-
925
- </h3><div class="docstring">
926
- <div class="discussion">
927
- <p>The <span class='object_link'><a href="Configuration.html" title="DevDNSd::Configuration (class)">Configuration</a></span> of this application.</p>
928
-
929
-
930
- </div>
931
- </div>
932
- <div class="tags">
933
-
934
-
935
- </div><table class="source_code">
936
- <tr>
937
- <td>
938
- <pre class="lines">
939
-
940
-
941
- 18
942
- 19
943
- 20</pre>
944
- </td>
945
- <td>
946
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 18</span>
947
-
948
- <span class='kw'>def</span> <span class='id identifier rubyid_config'>config</span>
949
- <span class='ivar'>@config</span>
950
- <span class='kw'>end</span></pre>
951
- </td>
952
- </tr>
953
- </table>
954
- </div>
955
-
956
-
957
- <span id="logger=-instance_method"></span>
958
- <div class="method_details ">
959
- <h3 class="signature " id="logger-instance_method">
960
-
961
- - (<tt>Object</tt>) <strong>logger</strong>
962
-
963
-
964
-
965
-
966
-
967
- </h3><div class="docstring">
968
- <div class="discussion">
969
- <p>The logger for this application.</p>
970
-
971
-
972
- </div>
973
- </div>
974
- <div class="tags">
975
-
976
-
977
- </div><table class="source_code">
978
- <tr>
979
- <td>
980
- <pre class="lines">
981
-
982
-
983
- 24
984
- 25
985
- 26</pre>
986
- </td>
987
- <td>
988
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 24</span>
989
-
990
- <span class='kw'>def</span> <span class='id identifier rubyid_logger'>logger</span>
991
- <span class='ivar'>@logger</span>
992
- <span class='kw'>end</span></pre>
993
- </td>
994
- </tr>
995
- </table>
996
- </div>
997
-
998
- </div>
999
-
1000
-
1001
- <div id="class_method_details" class="method_details_list">
1002
- <h2>Class Method Details</h2>
1003
-
1004
-
1005
- <div class="method_details first">
1006
- <h3 class="signature first" id="daemon_name-class_method">
1007
-
1008
- + (<tt>String</tt>) <strong>daemon_name</strong>
1009
-
1010
-
1011
-
1012
-
1013
-
1014
- </h3><div class="docstring">
1015
- <div class="discussion">
1016
- <p>Returns the name of the daemon.</p>
1017
-
1018
-
1019
- </div>
1020
- </div>
1021
- <div class="tags">
1022
-
1023
- <p class="tag_title">Returns:</p>
1024
- <ul class="return">
1025
-
1026
- <li>
1027
-
1028
-
1029
- <span class='type'>(<tt>String</tt>)</span>
1030
-
1031
-
1032
-
1033
- &mdash;
1034
- <div class='inline'><p>The name of the daemon.</p>
1035
- </div>
1036
-
1037
- </li>
1038
-
1039
- </ul>
1040
-
1041
- </div><table class="source_code">
1042
- <tr>
1043
- <td>
1044
- <pre class="lines">
1045
-
1046
-
1047
- 63
1048
- 64
1049
- 65</pre>
1050
- </td>
1051
- <td>
1052
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 63</span>
1053
-
1054
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_daemon_name'>daemon_name</span>
1055
- <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_basename'>basename</span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_pid_file'>pid_file</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>.pid</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1056
- <span class='kw'>end</span></pre>
1057
- </td>
1058
- </tr>
1059
- </table>
1060
- </div>
1061
-
1062
- <div class="method_details ">
1063
- <h3 class="signature " id="instance-class_method">
1064
-
1065
- + (<tt><span class='object_link'><a href="" title="DevDNSd::Application (class)">Application</a></span></tt>) <strong>instance</strong>(command = nil, force = false)
1066
-
1067
-
1068
-
1069
-
1070
-
1071
- </h3><div class="docstring">
1072
- <div class="discussion">
1073
- <p>Returns a unique (singleton) instance of the application.</p>
1074
-
1075
-
1076
- </div>
1077
- </div>
1078
- <div class="tags">
1079
- <p class="tag_title">Parameters:</p>
1080
- <ul class="param">
1081
-
1082
- <li>
1083
-
1084
- <span class='name'>command</span>
1085
-
1086
-
1087
- <span class='type'>(<tt>Mamertes::Command</tt>)</span>
1088
-
1089
-
1090
- <em class="default">(defaults to: <tt>nil</tt>)</em>
1091
-
1092
-
1093
- &mdash;
1094
- <div class='inline'><p>The current Mamertes command.</p>
1095
- </div>
1096
-
1097
- </li>
1098
-
1099
- <li>
1100
-
1101
- <span class='name'>force</span>
1102
-
1103
-
1104
- <span class='type'>(<tt>Boolean</tt>)</span>
1105
-
1106
-
1107
- <em class="default">(defaults to: <tt>false</tt>)</em>
1108
-
1109
-
1110
- &mdash;
1111
- <div class='inline'><p>If to force recreation of the instance.</p>
1112
- </div>
1113
-
1114
- </li>
1115
-
1116
- </ul>
1117
-
1118
- <p class="tag_title">Returns:</p>
1119
- <ul class="return">
1120
-
1121
- <li>
1122
-
1123
-
1124
- <span class='type'>(<tt><span class='object_link'><a href="" title="DevDNSd::Application (class)">Application</a></span></tt>)</span>
1125
-
1126
-
1127
-
1128
- &mdash;
1129
- <div class='inline'><p>The unique (singleton) instance of the application.</p>
1130
- </div>
1131
-
1132
- </li>
1133
-
1134
- </ul>
1135
-
1136
- </div><table class="source_code">
1137
- <tr>
1138
- <td>
1139
- <pre class="lines">
1140
-
1141
-
1142
- 369
1143
- 370
1144
- 371
1145
- 372
1146
- 373</pre>
1147
- </td>
1148
- <td>
1149
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 369</span>
1150
-
1151
- <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='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>
1152
- <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>
1153
- <span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>DevDNSd</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> <span class='kw'>if</span> <span class='id identifier rubyid_command'>command</span>
1154
- <span class='ivar'>@instance</span>
1155
- <span class='kw'>end</span></pre>
1156
- </td>
1157
- </tr>
1158
- </table>
1159
- </div>
1160
-
1161
- <div class="method_details ">
1162
- <h3 class="signature " id="pid_directory-class_method">
1163
-
1164
- + (<tt>String</tt>) <strong>pid_directory</strong>
1165
-
1166
-
1167
-
1168
-
1169
-
1170
- </h3><div class="docstring">
1171
- <div class="discussion">
1172
- <p>Returns the standard location of the PID file.</p>
1173
-
1174
-
1175
- </div>
1176
- </div>
1177
- <div class="tags">
1178
-
1179
- <p class="tag_title">Returns:</p>
1180
- <ul class="return">
1181
-
1182
- <li>
1183
-
1184
-
1185
- <span class='type'>(<tt>String</tt>)</span>
1186
-
1187
-
1188
-
1189
- &mdash;
1190
- <div class='inline'><p>The standard location of the PID file.</p>
1191
- </div>
1192
-
1193
- </li>
1194
-
1195
- </ul>
1196
-
1197
- </div><table class="source_code">
1198
- <tr>
1199
- <td>
1200
- <pre class="lines">
1201
-
1202
-
1203
- 70
1204
- 71
1205
- 72</pre>
1206
- </td>
1207
- <td>
1208
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 70</span>
1209
-
1210
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_pid_directory'>pid_directory</span>
1211
- <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_dirname'>dirname</span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_pid_file'>pid_file</span><span class='rparen'>)</span>
1212
- <span class='kw'>end</span></pre>
1213
- </td>
1214
- </tr>
1215
- </table>
1216
- </div>
1217
-
1218
- <div class="method_details ">
1219
- <h3 class="signature " id="pid_fn-class_method">
1220
-
1221
- + (<tt>String</tt>) <strong>pid_fn</strong>
1222
-
1223
-
1224
-
1225
-
1226
-
1227
- </h3><div class="docstring">
1228
- <div class="discussion">
1229
- <p>Returns the complete path of the PID file.</p>
1230
-
1231
-
1232
- </div>
1233
- </div>
1234
- <div class="tags">
1235
-
1236
- <p class="tag_title">Returns:</p>
1237
- <ul class="return">
1238
-
1239
- <li>
1240
-
1241
-
1242
- <span class='type'>(<tt>String</tt>)</span>
1243
-
1244
-
1245
-
1246
- &mdash;
1247
- <div class='inline'><p>The complete path of the PID file.</p>
1248
- </div>
1249
-
1250
- </li>
1251
-
1252
- </ul>
1253
-
1254
- </div><table class="source_code">
1255
- <tr>
1256
- <td>
1257
- <pre class="lines">
1258
-
1259
-
1260
- 77
1261
- 78
1262
- 79</pre>
1263
- </td>
1264
- <td>
1265
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 77</span>
1266
-
1267
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_pid_fn'>pid_fn</span>
1268
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_pid_file'>pid_file</span>
1269
- <span class='kw'>end</span></pre>
1270
- </td>
1271
- </tr>
1272
- </table>
1273
- </div>
1274
-
1275
- <div class="method_details ">
1276
- <h3 class="signature " id="quit-class_method">
1277
-
1278
- + (<tt>Object</tt>) <strong>quit</strong>
1279
-
1280
-
1281
-
1282
-
1283
-
1284
- </h3><div class="docstring">
1285
- <div class="discussion">
1286
- <p>Stops the application.</p>
1287
-
1288
-
1289
- </div>
1290
- </div>
1291
- <div class="tags">
1292
-
1293
-
1294
- </div><table class="source_code">
1295
- <tr>
1296
- <td>
1297
- <pre class="lines">
1298
-
1299
-
1300
- 383
1301
- 384
1302
- 385</pre>
1303
- </td>
1304
- <td>
1305
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 383</span>
1306
-
1307
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_quit'>quit</span>
1308
- <span class='op'>::</span><span class='const'>EventMachine</span><span class='period'>.</span><span class='id identifier rubyid_stop'>stop</span>
1309
- <span class='kw'>end</span></pre>
1310
- </td>
1311
- </tr>
1312
- </table>
1313
- </div>
1314
-
1315
- <div class="method_details ">
1316
- <h3 class="signature " id="run-class_method">
1317
-
1318
- + (<tt>Object</tt>) <strong>run</strong>
1319
-
1320
-
1321
-
1322
-
1323
-
1324
- </h3><div class="docstring">
1325
- <div class="discussion">
1326
- <p>Runs the application in foreground.</p>
1327
-
1328
-
1329
- </div>
1330
- </div>
1331
- <div class="tags">
1332
-
1333
-
1334
- <p class="tag_title">See Also:</p>
1335
- <ul class="see">
1336
-
1337
- <li><span class='object_link'><a href="#perform_server-instance_method" title="DevDNSd::Application#perform_server (method)">#perform_server</a></span></li>
1338
-
1339
- </ul>
1340
-
1341
- </div><table class="source_code">
1342
- <tr>
1343
- <td>
1344
- <pre class="lines">
1345
-
1346
-
1347
- 378
1348
- 379
1349
- 380</pre>
1350
- </td>
1351
- <td>
1352
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 378</span>
1353
-
1354
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span>
1355
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_perform_server'>perform_server</span>
1356
- <span class='kw'>end</span></pre>
1357
- </td>
1358
- </tr>
1359
- </table>
1360
- </div>
1361
-
1362
- </div>
1363
-
1364
- <div id="instance_method_details" class="method_details_list">
1365
- <h2>Instance Method Details</h2>
1366
-
1367
-
1368
- <div class="method_details first">
1369
- <h3 class="signature first" id="action_install-instance_method">
1370
-
1371
- - (<tt>Boolean</tt>) <strong>action_install</strong>
1372
-
1373
-
1374
-
1375
-
1376
-
1377
- </h3><div class="docstring">
1378
- <div class="discussion">
1379
- <p>Installs the server into the system.</p>
1380
-
1381
-
1382
- </div>
1383
- </div>
1384
- <div class="tags">
1385
-
1386
- <p class="tag_title">Returns:</p>
1387
- <ul class="return">
638
+ <p class="tag_title">Returns:</p>
639
+ <ul class="return">
1388
640
 
1389
641
  <li>
1390
642
 
1391
643
 
1392
- <span class='type'>(<tt>Boolean</tt>)</span>
644
+ <span class='type'>(<tt>Mamertes::Command</tt>)</span>
1393
645
 
1394
646
 
1395
647
 
1396
648
  &mdash;
1397
- <div class='inline'><p><code>true</code> if action succedeed, <code>false</code> otherwise.</p>
649
+ <div class='inline'><p>The Mamertes command.</p>
1398
650
  </div>
1399
651
 
1400
652
  </li>
@@ -1407,125 +659,229 @@
1407
659
  <pre class="lines">
1408
660
 
1409
661
 
1410
- 254
1411
- 255
1412
- 256
1413
- 257
1414
- 258
1415
- 259
1416
- 260
1417
- 261
1418
- 262
1419
- 263
1420
- 264
1421
- 265
1422
- 266
1423
- 267
1424
- 268
1425
- 269
1426
- 270
1427
- 271
1428
- 272
1429
- 273
1430
- 274
1431
- 275
1432
- 276
1433
- 277
1434
- 278
1435
- 279
1436
- 280
1437
- 281
1438
- 282
1439
- 283
1440
- 284
1441
- 285
1442
- 286
1443
- 287
1444
- 288
1445
- 289
1446
- 290
1447
- 291
1448
- 292
1449
- 293
1450
- 294
1451
- 295
1452
- 296
1453
- 297
1454
- 298
1455
- 299
1456
- 300
1457
- 301
1458
- 302
1459
- 303
1460
- 304
1461
- 305
1462
- 306</pre>
662
+ 375
663
+ 376
664
+ 377
665
+ 378
666
+ 379
667
+ 380
668
+ 381
669
+ 382
670
+ 383
671
+ 384
672
+ 385
673
+ 386
674
+ 387
675
+ 388
676
+ 389
677
+ 390
678
+ 391
679
+ 392
680
+ 393
681
+ 394
682
+ 395
683
+ 396
684
+ 397
685
+ 398
686
+ 399
687
+ 400
688
+ 401
689
+ 402
690
+ 403
691
+ 404
692
+ 405
693
+ 406
694
+ 407
695
+ 408
696
+ 409
697
+ 410
698
+ 411
699
+ 412
700
+ 413
701
+ 414
702
+ 415
703
+ 416
704
+ 417
705
+ 418
706
+ 419
707
+ 420
708
+ 421
709
+ 422
710
+ 423
711
+ 424
712
+ 425
713
+ 426
714
+ 427
715
+ 428
716
+ 429
717
+ 430
718
+ 431
719
+ 432
720
+ 433
721
+ 434
722
+ 435
723
+ 436
724
+ 437
725
+ 438
726
+ 439
727
+ 440
728
+ 441
729
+ 442
730
+ 443
731
+ 444
732
+ 445
733
+ 446
734
+ 447
735
+ 448
736
+ 449
737
+ 450
738
+ 451
739
+ 452
740
+ 453
741
+ 454
742
+ 455
743
+ 456
744
+ 457
745
+ 458
746
+ 459
747
+ 460
748
+ 461
749
+ 462
750
+ 463
751
+ 464
752
+ 465
753
+ 466
754
+ 467
755
+ 468
756
+ 469
757
+ 470
758
+ 471
759
+ 472
760
+ 473
761
+ 474
762
+ 475
763
+ 476
764
+ 477
765
+ 478</pre>
1463
766
  </td>
1464
767
  <td>
1465
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 254</span>
768
+ <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 375</span>
769
+
770
+ <span class='kw'>class</span> <span class='const'>Application</span> <span class='op'>&lt;</span> <span class='const'>RExec</span><span class='op'>::</span><span class='const'>Daemon</span><span class='op'>::</span><span class='const'>Base</span>
771
+ <span class='comment'># Class for ANY DNS request.
772
+ </span> <span class='const'>ANY_REQUEST</span> <span class='op'>=</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>ANY</span>
773
+
774
+ <span class='comment'># List of classes handled in case of DNS request with resource class ANY.
775
+ </span> <span class='const'>ANY_CLASSES</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>A</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>AAAA</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>ANY</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>CNAME</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>HINFO</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>MINFO</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>MX</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>NS</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>PTR</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>SOA</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>TXT</span><span class='rbracket'>]</span>
776
+
777
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>I18n</span>
778
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>ApplicationMethods</span><span class='op'>::</span><span class='const'>System</span>
779
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>ApplicationMethods</span><span class='op'>::</span><span class='const'>Server</span>
1466
780
 
1467
- <span class='kw'>def</span> <span class='id identifier rubyid_action_install'>action_install</span>
1468
- <span class='id identifier rubyid_logger'>logger</span> <span class='op'>=</span> <span class='id identifier rubyid_get_logger'>get_logger</span>
781
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:config</span>
782
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:command</span>
783
+ <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:logger</span>
784
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:locale</span>
1469
785
 
1470
- <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>
1471
- <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 DevDNSd as a local resolver is only available on MacOSX.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1472
- <span class='kw'>return</span> <span class='kw'>false</span>
786
+ <span class='comment'># Creates a new application.
787
+ </span> <span class='comment'>#
788
+ </span> <span class='comment'># @param command [Mamertes::Command] The current Mamertes command.
789
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for the application.
790
+ </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>
791
+ <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'>:devdnsd</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>
792
+ <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>
793
+
794
+ <span class='ivar'>@locale</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
795
+ <span class='ivar'>@command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span>
796
+ <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>
797
+
798
+ <span class='comment'># Setup logger
799
+ </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>
800
+ <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>
801
+
802
+ <span class='comment'># Open configuration
803
+ </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>
804
+
805
+ <span class='kw'>self</span>
1473
806
  <span class='kw'>end</span>
1474
807
 
1475
- <span class='id identifier rubyid_resolver_file'>resolver_file</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_resolver_path'>resolver_path</span>
1476
- <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>
1477
-
1478
- <span class='comment'># Installs the resolver
1479
- </span> <span class='kw'>begin</span>
1480
- <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'>Installing the resolver in </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_resolver_file'>resolver_file</span><span class='rbrace'>}</span><span class='tstring_content'> ...</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1481
-
1482
- <span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='id identifier rubyid_resolver_file'>resolver_file</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>
1483
- <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='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>nameserver 127.0.0.1\n</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1484
- <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='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>port </span><span class='embexpr_beg'>#{</span><span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1485
- <span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_flush'>flush</span>
1486
- <span class='rbrace'>}</span>
1487
- <span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1488
- <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 resolver file.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1489
- <span class='kw'>return</span> <span class='kw'>false</span>
808
+ <span class='comment'># Gets the current logger of the application.
809
+ </span> <span class='comment'>#
810
+ </span> <span class='comment'># @return [Logger] The current logger of the application.
811
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_get_logger'>get_logger</span>
812
+ <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_foreground'>foreground</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='op'>:</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>
1490
813
  <span class='kw'>end</span>
1491
814
 
1492
- <span class='kw'>begin</span>
1493
- <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 </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>
815
+ <span class='comment'># This method is called when the server starts. By default is a no-op.
816
+ </span> <span class='comment'>#
817
+ </span> <span class='comment'># @return [NilClass] `nil`.
818
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_on_start'>on_start</span>
819
+ <span class='kw'>end</span>
820
+
821
+ <span class='comment'># This method is called when the server stop.
822
+ </span> <span class='comment'>#
823
+ </span> <span class='comment'># @return [NilClass] `nil`.
824
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_on_stop'>on_stop</span>
825
+ <span class='kw'>end</span>
1494
826
 
1495
- <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>
827
+ <span class='comment'># Returns a unique (singleton) instance of the application.
828
+ </span> <span class='comment'>#
829
+ </span> <span class='comment'># @param command [Mamertes::Command] The current Mamertes command.
830
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for the application.
831
+ </span> <span class='comment'># @param force [Boolean] If to force recreation of the instance.
832
+ </span> <span class='comment'># @return [Application] The unique (singleton) instance of the application.
833
+ </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='op'>=</span> <span class='kw'>nil</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>
834
+ <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>
835
+ <span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>DevDNSd</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> <span class='kw'>if</span> <span class='id identifier rubyid_command'>command</span>
836
+ <span class='ivar'>@instance</span>
837
+ <span class='kw'>end</span>
1496
838
 
1497
- <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'>true</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.devdnsd</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>
1498
- <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>
1499
- <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>
1500
- <span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_flush'>flush</span>
1501
- <span class='rbrace'>}</span>
1502
- <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>
1503
- <span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1504
- <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>
1505
- <span class='kw'>return</span> <span class='kw'>false</span>
839
+ <span class='comment'># Runs the application in foreground.
840
+ </span> <span class='comment'>#
841
+ </span> <span class='comment'># @see #perform_server
842
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span>
843
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_perform_server'>perform_server</span>
1506
844
  <span class='kw'>end</span>
1507
845
 
1508
- <span class='kw'>begin</span>
1509
- <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>
1510
- <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>
1511
- <span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1512
- <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>
1513
- <span class='kw'>return</span> <span class='kw'>false</span>
846
+ <span class='comment'># Stops the application.
847
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_quit'>quit</span>
848
+ <span class='op'>::</span><span class='const'>EventMachine</span><span class='period'>.</span><span class='id identifier rubyid_stop'>stop</span> <span class='kw'>rescue</span> <span class='kw'>nil</span>
1514
849
  <span class='kw'>end</span>
1515
850
 
1516
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_dns_update'>dns_update</span>
851
+ <span class='comment'># Check if the current implementation supports DevDNSd.
852
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_check_ruby_implementation'>check_ruby_implementation</span>
853
+ <span class='kw'>if</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='const'>Rubinius</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='const'>JRuby</span><span class='rparen'>)</span> <span class='kw'>then</span>
854
+ <span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span><span class='lparen'>(</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='symbol'>:devdnsd</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><span class='period'>.</span><span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_no_jruby_rubinius'>no_jruby_rubinius</span><span class='rparen'>)</span>
855
+ <span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
856
+ <span class='kw'>end</span>
857
+ <span class='kw'>end</span>
1517
858
 
1518
- <span class='kw'>true</span>
859
+ <span class='id identifier rubyid_private'>private</span>
860
+ <span class='comment'># Reads configuration.
861
+ </span> <span class='comment'>#
862
+ </span> <span class='comment'># @param options [Hash] The configuration to read.
863
+ </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>
864
+ <span class='kw'>begin</span>
865
+ <span class='ivar'>@config</span> <span class='op'>=</span> <span class='const'>DevDNSd</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>
866
+ <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='kw'>nil</span>
867
+ <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>
868
+ <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>
869
+ <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>
870
+ <span class='id identifier rubyid_raise'>raise</span> <span class='op'>::</span><span class='const'>SystemExit</span>
871
+ <span class='kw'>end</span>
872
+ <span class='kw'>end</span>
1519
873
  <span class='kw'>end</span></pre>
1520
874
  </td>
1521
875
  </tr>
1522
876
  </table>
1523
877
  </div>
1524
878
 
879
+
880
+ <span id=""></span>
1525
881
  <div class="method_details ">
1526
- <h3 class="signature " id="action_start-instance_method">
882
+ <h3 class="signature " id="config-instance_method">
1527
883
 
1528
- - (<tt>Boolean</tt>) <strong>action_start</strong>
884
+ - (<tt><span class='object_link'><a href="Configuration.html" title="DevDNSd::Configuration (class)">Configuration</a></span></tt>) <strong>config</strong> <span class="extras">(readonly)</span>
1529
885
 
1530
886
 
1531
887
 
@@ -1533,7 +889,7 @@
1533
889
 
1534
890
  </h3><div class="docstring">
1535
891
  <div class="discussion">
1536
- <p>Starts the server in background.</p>
892
+ <p>The <span class='object_link'><a href="Configuration.html" title="DevDNSd::Configuration (class)">Configuration</a></span> of this application.</p>
1537
893
 
1538
894
 
1539
895
  </div>
@@ -1546,12 +902,12 @@
1546
902
  <li>
1547
903
 
1548
904
 
1549
- <span class='type'>(<tt>Boolean</tt>)</span>
905
+ <span class='type'>(<tt><span class='object_link'><a href="Configuration.html" title="DevDNSd::Configuration (class)">Configuration</a></span></tt>)</span>
1550
906
 
1551
907
 
1552
908
 
1553
909
  &mdash;
1554
- <div class='inline'><p><code>true</code> if action succedeed, <code>false</code> otherwise.</p>
910
+ <div class='inline'><p>The <span class='object_link'><a href="Configuration.html" title="DevDNSd::Configuration (class)">Configuration</a></span> of this application.</p>
1555
911
  </div>
1556
912
 
1557
913
  </li>
@@ -1564,45 +920,229 @@
1564
920
  <pre class="lines">
1565
921
 
1566
922
 
1567
- 228
1568
- 229
1569
- 230
1570
- 231
1571
- 232
1572
- 233
1573
- 234
1574
- 235
1575
- 236
1576
- 237
1577
- 238
1578
- 239
1579
- 240</pre>
923
+ 375
924
+ 376
925
+ 377
926
+ 378
927
+ 379
928
+ 380
929
+ 381
930
+ 382
931
+ 383
932
+ 384
933
+ 385
934
+ 386
935
+ 387
936
+ 388
937
+ 389
938
+ 390
939
+ 391
940
+ 392
941
+ 393
942
+ 394
943
+ 395
944
+ 396
945
+ 397
946
+ 398
947
+ 399
948
+ 400
949
+ 401
950
+ 402
951
+ 403
952
+ 404
953
+ 405
954
+ 406
955
+ 407
956
+ 408
957
+ 409
958
+ 410
959
+ 411
960
+ 412
961
+ 413
962
+ 414
963
+ 415
964
+ 416
965
+ 417
966
+ 418
967
+ 419
968
+ 420
969
+ 421
970
+ 422
971
+ 423
972
+ 424
973
+ 425
974
+ 426
975
+ 427
976
+ 428
977
+ 429
978
+ 430
979
+ 431
980
+ 432
981
+ 433
982
+ 434
983
+ 435
984
+ 436
985
+ 437
986
+ 438
987
+ 439
988
+ 440
989
+ 441
990
+ 442
991
+ 443
992
+ 444
993
+ 445
994
+ 446
995
+ 447
996
+ 448
997
+ 449
998
+ 450
999
+ 451
1000
+ 452
1001
+ 453
1002
+ 454
1003
+ 455
1004
+ 456
1005
+ 457
1006
+ 458
1007
+ 459
1008
+ 460
1009
+ 461
1010
+ 462
1011
+ 463
1012
+ 464
1013
+ 465
1014
+ 466
1015
+ 467
1016
+ 468
1017
+ 469
1018
+ 470
1019
+ 471
1020
+ 472
1021
+ 473
1022
+ 474
1023
+ 475
1024
+ 476
1025
+ 477
1026
+ 478</pre>
1580
1027
  </td>
1581
1028
  <td>
1582
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 228</span>
1029
+ <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 375</span>
1030
+
1031
+ <span class='kw'>class</span> <span class='const'>Application</span> <span class='op'>&lt;</span> <span class='const'>RExec</span><span class='op'>::</span><span class='const'>Daemon</span><span class='op'>::</span><span class='const'>Base</span>
1032
+ <span class='comment'># Class for ANY DNS request.
1033
+ </span> <span class='const'>ANY_REQUEST</span> <span class='op'>=</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>ANY</span>
1034
+
1035
+ <span class='comment'># List of classes handled in case of DNS request with resource class ANY.
1036
+ </span> <span class='const'>ANY_CLASSES</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>A</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>AAAA</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>ANY</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>CNAME</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>HINFO</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>MINFO</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>MX</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>NS</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>PTR</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>SOA</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>TXT</span><span class='rbracket'>]</span>
1037
+
1038
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>I18n</span>
1039
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>ApplicationMethods</span><span class='op'>::</span><span class='const'>System</span>
1040
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>ApplicationMethods</span><span class='op'>::</span><span class='const'>Server</span>
1041
+
1042
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:config</span>
1043
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:command</span>
1044
+ <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:logger</span>
1045
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:locale</span>
1046
+
1047
+ <span class='comment'># Creates a new application.
1048
+ </span> <span class='comment'>#
1049
+ </span> <span class='comment'># @param command [Mamertes::Command] The current Mamertes command.
1050
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for the application.
1051
+ </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>
1052
+ <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'>:devdnsd</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>
1053
+ <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>
1054
+
1055
+ <span class='ivar'>@locale</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
1056
+ <span class='ivar'>@command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span>
1057
+ <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>
1058
+
1059
+ <span class='comment'># Setup logger
1060
+ </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>
1061
+ <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>
1062
+
1063
+ <span class='comment'># Open configuration
1064
+ </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>
1065
+
1066
+ <span class='kw'>self</span>
1067
+ <span class='kw'>end</span>
1068
+
1069
+ <span class='comment'># Gets the current logger of the application.
1070
+ </span> <span class='comment'>#
1071
+ </span> <span class='comment'># @return [Logger] The current logger of the application.
1072
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_get_logger'>get_logger</span>
1073
+ <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_foreground'>foreground</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='op'>:</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>
1074
+ <span class='kw'>end</span>
1075
+
1076
+ <span class='comment'># This method is called when the server starts. By default is a no-op.
1077
+ </span> <span class='comment'>#
1078
+ </span> <span class='comment'># @return [NilClass] `nil`.
1079
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_on_start'>on_start</span>
1080
+ <span class='kw'>end</span>
1081
+
1082
+ <span class='comment'># This method is called when the server stop.
1083
+ </span> <span class='comment'>#
1084
+ </span> <span class='comment'># @return [NilClass] `nil`.
1085
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_on_stop'>on_stop</span>
1086
+ <span class='kw'>end</span>
1087
+
1088
+ <span class='comment'># Returns a unique (singleton) instance of the application.
1089
+ </span> <span class='comment'>#
1090
+ </span> <span class='comment'># @param command [Mamertes::Command] The current Mamertes command.
1091
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for the application.
1092
+ </span> <span class='comment'># @param force [Boolean] If to force recreation of the instance.
1093
+ </span> <span class='comment'># @return [Application] The unique (singleton) instance of the application.
1094
+ </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='op'>=</span> <span class='kw'>nil</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>
1095
+ <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>
1096
+ <span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>DevDNSd</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> <span class='kw'>if</span> <span class='id identifier rubyid_command'>command</span>
1097
+ <span class='ivar'>@instance</span>
1098
+ <span class='kw'>end</span>
1583
1099
 
1584
- <span class='kw'>def</span> <span class='id identifier rubyid_action_start'>action_start</span>
1585
- <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>
1100
+ <span class='comment'># Runs the application in foreground.
1101
+ </span> <span class='comment'>#
1102
+ </span> <span class='comment'># @see #perform_server
1103
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span>
1104
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_perform_server'>perform_server</span>
1105
+ <span class='kw'>end</span>
1586
1106
 
1587
- <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'>Starting DevDNSd ...</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1107
+ <span class='comment'># Stops the application.
1108
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_quit'>quit</span>
1109
+ <span class='op'>::</span><span class='const'>EventMachine</span><span class='period'>.</span><span class='id identifier rubyid_stop'>stop</span> <span class='kw'>rescue</span> <span class='kw'>nil</span>
1110
+ <span class='kw'>end</span>
1588
1111
 
1589
- <span class='kw'>if</span> <span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_foreground'>foreground</span> <span class='kw'>then</span>
1590
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_perform_server'>perform_server</span>
1591
- <span class='kw'>else</span>
1592
- <span class='const'>RExec</span><span class='op'>::</span><span class='const'>Daemon</span><span class='op'>::</span><span class='const'>Controller</span><span class='period'>.</span><span class='id identifier rubyid_start'>start</span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='rparen'>)</span>
1112
+ <span class='comment'># Check if the current implementation supports DevDNSd.
1113
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_check_ruby_implementation'>check_ruby_implementation</span>
1114
+ <span class='kw'>if</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='const'>Rubinius</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='const'>JRuby</span><span class='rparen'>)</span> <span class='kw'>then</span>
1115
+ <span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span><span class='lparen'>(</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='symbol'>:devdnsd</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><span class='period'>.</span><span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_no_jruby_rubinius'>no_jruby_rubinius</span><span class='rparen'>)</span>
1116
+ <span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
1117
+ <span class='kw'>end</span>
1593
1118
  <span class='kw'>end</span>
1594
1119
 
1595
- <span class='kw'>true</span>
1120
+ <span class='id identifier rubyid_private'>private</span>
1121
+ <span class='comment'># Reads configuration.
1122
+ </span> <span class='comment'>#
1123
+ </span> <span class='comment'># @param options [Hash] The configuration to read.
1124
+ </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>
1125
+ <span class='kw'>begin</span>
1126
+ <span class='ivar'>@config</span> <span class='op'>=</span> <span class='const'>DevDNSd</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>
1127
+ <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='kw'>nil</span>
1128
+ <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>
1129
+ <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>
1130
+ <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>
1131
+ <span class='id identifier rubyid_raise'>raise</span> <span class='op'>::</span><span class='const'>SystemExit</span>
1132
+ <span class='kw'>end</span>
1133
+ <span class='kw'>end</span>
1596
1134
  <span class='kw'>end</span></pre>
1597
1135
  </td>
1598
1136
  </tr>
1599
1137
  </table>
1600
1138
  </div>
1601
1139
 
1140
+
1141
+ <span id=""></span>
1602
1142
  <div class="method_details ">
1603
- <h3 class="signature " id="action_stop-instance_method">
1143
+ <h3 class="signature " id="locale-instance_method">
1604
1144
 
1605
- - (<tt>Boolean</tt>) <strong>action_stop</strong>
1145
+ - (<tt>Symbol|nil</tt>) <strong>locale</strong> <span class="extras">(readonly)</span>
1606
1146
 
1607
1147
 
1608
1148
 
@@ -1610,7 +1150,7 @@
1610
1150
 
1611
1151
  </h3><div class="docstring">
1612
1152
  <div class="discussion">
1613
- <p>Stops the server in background.</p>
1153
+ <p>The current application locale.</p>
1614
1154
 
1615
1155
 
1616
1156
  </div>
@@ -1623,12 +1163,12 @@
1623
1163
  <li>
1624
1164
 
1625
1165
 
1626
- <span class='type'>(<tt>Boolean</tt>)</span>
1166
+ <span class='type'>(<tt>Symbol|nil</tt>)</span>
1627
1167
 
1628
1168
 
1629
1169
 
1630
1170
  &mdash;
1631
- <div class='inline'><p><code>true</code> if action succedeed, <code>false</code> otherwise.</p>
1171
+ <div class='inline'><p>The current application locale.</p>
1632
1172
  </div>
1633
1173
 
1634
1174
  </li>
@@ -1641,160 +1181,229 @@
1641
1181
  <pre class="lines">
1642
1182
 
1643
1183
 
1644
- 245
1645
- 246
1646
- 247
1647
- 248
1648
- 249</pre>
1184
+ 375
1185
+ 376
1186
+ 377
1187
+ 378
1188
+ 379
1189
+ 380
1190
+ 381
1191
+ 382
1192
+ 383
1193
+ 384
1194
+ 385
1195
+ 386
1196
+ 387
1197
+ 388
1198
+ 389
1199
+ 390
1200
+ 391
1201
+ 392
1202
+ 393
1203
+ 394
1204
+ 395
1205
+ 396
1206
+ 397
1207
+ 398
1208
+ 399
1209
+ 400
1210
+ 401
1211
+ 402
1212
+ 403
1213
+ 404
1214
+ 405
1215
+ 406
1216
+ 407
1217
+ 408
1218
+ 409
1219
+ 410
1220
+ 411
1221
+ 412
1222
+ 413
1223
+ 414
1224
+ 415
1225
+ 416
1226
+ 417
1227
+ 418
1228
+ 419
1229
+ 420
1230
+ 421
1231
+ 422
1232
+ 423
1233
+ 424
1234
+ 425
1235
+ 426
1236
+ 427
1237
+ 428
1238
+ 429
1239
+ 430
1240
+ 431
1241
+ 432
1242
+ 433
1243
+ 434
1244
+ 435
1245
+ 436
1246
+ 437
1247
+ 438
1248
+ 439
1249
+ 440
1250
+ 441
1251
+ 442
1252
+ 443
1253
+ 444
1254
+ 445
1255
+ 446
1256
+ 447
1257
+ 448
1258
+ 449
1259
+ 450
1260
+ 451
1261
+ 452
1262
+ 453
1263
+ 454
1264
+ 455
1265
+ 456
1266
+ 457
1267
+ 458
1268
+ 459
1269
+ 460
1270
+ 461
1271
+ 462
1272
+ 463
1273
+ 464
1274
+ 465
1275
+ 466
1276
+ 467
1277
+ 468
1278
+ 469
1279
+ 470
1280
+ 471
1281
+ 472
1282
+ 473
1283
+ 474
1284
+ 475
1285
+ 476
1286
+ 477
1287
+ 478</pre>
1649
1288
  </td>
1650
1289
  <td>
1651
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 245</span>
1290
+ <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 375</span>
1652
1291
 
1653
- <span class='kw'>def</span> <span class='id identifier rubyid_action_stop'>action_stop</span>
1654
- <span class='const'>RExec</span><span class='op'>::</span><span class='const'>Daemon</span><span class='op'>::</span><span class='const'>Controller</span><span class='period'>.</span><span class='id identifier rubyid_stop'>stop</span><span class='lparen'>(</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='rparen'>)</span>
1292
+ <span class='kw'>class</span> <span class='const'>Application</span> <span class='op'>&lt;</span> <span class='const'>RExec</span><span class='op'>::</span><span class='const'>Daemon</span><span class='op'>::</span><span class='const'>Base</span>
1293
+ <span class='comment'># Class for ANY DNS request.
1294
+ </span> <span class='const'>ANY_REQUEST</span> <span class='op'>=</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>ANY</span>
1655
1295
 
1656
- <span class='kw'>true</span>
1657
- <span class='kw'>end</span></pre>
1658
- </td>
1659
- </tr>
1660
- </table>
1661
- </div>
1662
-
1663
- <div class="method_details ">
1664
- <h3 class="signature " id="action_uninstall-instance_method">
1665
-
1666
- - (<tt>Boolean</tt>) <strong>action_uninstall</strong>
1667
-
1296
+ <span class='comment'># List of classes handled in case of DNS request with resource class ANY.
1297
+ </span> <span class='const'>ANY_CLASSES</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>A</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>AAAA</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>ANY</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>CNAME</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>HINFO</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>MINFO</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>MX</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>NS</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>PTR</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>SOA</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>TXT</span><span class='rbracket'>]</span>
1668
1298
 
1669
-
1299
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>I18n</span>
1300
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>ApplicationMethods</span><span class='op'>::</span><span class='const'>System</span>
1301
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>ApplicationMethods</span><span class='op'>::</span><span class='const'>Server</span>
1670
1302
 
1671
-
1672
- </h3><div class="docstring">
1673
- <div class="discussion">
1674
- <p>Uninstalls the server from the system.</p>
1303
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:config</span>
1304
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:command</span>
1305
+ <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:logger</span>
1306
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:locale</span>
1675
1307
 
1308
+ <span class='comment'># Creates a new application.
1309
+ </span> <span class='comment'>#
1310
+ </span> <span class='comment'># @param command [Mamertes::Command] The current Mamertes command.
1311
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for the application.
1312
+ </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>
1313
+ <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'>:devdnsd</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>
1314
+ <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>
1676
1315
 
1677
- </div>
1678
- </div>
1679
- <div class="tags">
1680
-
1681
- <p class="tag_title">Returns:</p>
1682
- <ul class="return">
1683
-
1684
- <li>
1685
-
1686
-
1687
- <span class='type'>(<tt>Boolean</tt>)</span>
1688
-
1689
-
1690
-
1691
- &mdash;
1692
- <div class='inline'><p><code>true</code> if action succedeed, <code>false</code> otherwise.</p>
1693
- </div>
1694
-
1695
- </li>
1696
-
1697
- </ul>
1316
+ <span class='ivar'>@locale</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
1317
+ <span class='ivar'>@command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span>
1318
+ <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>
1698
1319
 
1699
- </div><table class="source_code">
1700
- <tr>
1701
- <td>
1702
- <pre class="lines">
1320
+ <span class='comment'># Setup logger
1321
+ </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>
1322
+ <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>
1703
1323
 
1324
+ <span class='comment'># Open configuration
1325
+ </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>
1704
1326
 
1705
- 311
1706
- 312
1707
- 313
1708
- 314
1709
- 315
1710
- 316
1711
- 317
1712
- 318
1713
- 319
1714
- 320
1715
- 321
1716
- 322
1717
- 323
1718
- 324
1719
- 325
1720
- 326
1721
- 327
1722
- 328
1723
- 329
1724
- 330
1725
- 331
1726
- 332
1727
- 333
1728
- 334
1729
- 335
1730
- 336
1731
- 337
1732
- 338
1733
- 339
1734
- 340
1735
- 341
1736
- 342
1737
- 343
1738
- 344
1739
- 345
1740
- 346
1741
- 347
1742
- 348
1743
- 349
1744
- 350</pre>
1745
- </td>
1746
- <td>
1747
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 311</span>
1327
+ <span class='kw'>self</span>
1328
+ <span class='kw'>end</span>
1748
1329
 
1749
- <span class='kw'>def</span> <span class='id identifier rubyid_action_uninstall'>action_uninstall</span>
1750
- <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>
1330
+ <span class='comment'># Gets the current logger of the application.
1331
+ </span> <span class='comment'>#
1332
+ </span> <span class='comment'># @return [Logger] The current logger of the application.
1333
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_get_logger'>get_logger</span>
1334
+ <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_foreground'>foreground</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='op'>:</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>
1335
+ <span class='kw'>end</span>
1751
1336
 
1752
- <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>
1753
- <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 DevDNSd as a local resolver is only available on MacOSX.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1754
- <span class='kw'>return</span> <span class='kw'>false</span>
1337
+ <span class='comment'># This method is called when the server starts. By default is a no-op.
1338
+ </span> <span class='comment'>#
1339
+ </span> <span class='comment'># @return [NilClass] `nil`.
1340
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_on_start'>on_start</span>
1755
1341
  <span class='kw'>end</span>
1756
1342
 
1757
- <span class='id identifier rubyid_resolver_file'>resolver_file</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_resolver_path'>resolver_path</span>
1758
- <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>
1343
+ <span class='comment'># This method is called when the server stop.
1344
+ </span> <span class='comment'>#
1345
+ </span> <span class='comment'># @return [NilClass] `nil`.
1346
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_on_stop'>on_stop</span>
1347
+ <span class='kw'>end</span>
1759
1348
 
1760
- <span class='comment'># Remove the resolver
1761
- </span> <span class='kw'>begin</span>
1762
- <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 resolver </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_resolver_file'>resolver_file</span><span class='rbrace'>}</span><span class='tstring_content'> ...</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1763
- <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_resolver_file'>resolver_file</span><span class='rparen'>)</span>
1764
- <span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1765
- <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 resolver file.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1766
- <span class='kw'>return</span> <span class='kw'>false</span>
1349
+ <span class='comment'># Returns a unique (singleton) instance of the application.
1350
+ </span> <span class='comment'>#
1351
+ </span> <span class='comment'># @param command [Mamertes::Command] The current Mamertes command.
1352
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for the application.
1353
+ </span> <span class='comment'># @param force [Boolean] If to force recreation of the instance.
1354
+ </span> <span class='comment'># @return [Application] The unique (singleton) instance of the application.
1355
+ </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='op'>=</span> <span class='kw'>nil</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>
1356
+ <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>
1357
+ <span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>DevDNSd</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> <span class='kw'>if</span> <span class='id identifier rubyid_command'>command</span>
1358
+ <span class='ivar'>@instance</span>
1767
1359
  <span class='kw'>end</span>
1768
1360
 
1769
- <span class='comment'># Unload the launch agent.
1770
- </span> <span class='kw'>begin</span>
1771
- <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>
1772
- <span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1773
- <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>
1361
+ <span class='comment'># Runs the application in foreground.
1362
+ </span> <span class='comment'>#
1363
+ </span> <span class='comment'># @see #perform_server
1364
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span>
1365
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_perform_server'>perform_server</span>
1774
1366
  <span class='kw'>end</span>
1775
1367
 
1776
- <span class='comment'># Delete the launch agent.
1777
- </span> <span class='kw'>begin</span>
1778
- <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>
1779
- <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>
1780
- <span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1781
- <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>
1782
- <span class='kw'>return</span> <span class='kw'>false</span>
1368
+ <span class='comment'># Stops the application.
1369
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_quit'>quit</span>
1370
+ <span class='op'>::</span><span class='const'>EventMachine</span><span class='period'>.</span><span class='id identifier rubyid_stop'>stop</span> <span class='kw'>rescue</span> <span class='kw'>nil</span>
1783
1371
  <span class='kw'>end</span>
1784
1372
 
1785
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_dns_update'>dns_update</span>
1373
+ <span class='comment'># Check if the current implementation supports DevDNSd.
1374
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_check_ruby_implementation'>check_ruby_implementation</span>
1375
+ <span class='kw'>if</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='const'>Rubinius</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='const'>JRuby</span><span class='rparen'>)</span> <span class='kw'>then</span>
1376
+ <span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span><span class='lparen'>(</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='symbol'>:devdnsd</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><span class='period'>.</span><span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_no_jruby_rubinius'>no_jruby_rubinius</span><span class='rparen'>)</span>
1377
+ <span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
1378
+ <span class='kw'>end</span>
1379
+ <span class='kw'>end</span>
1786
1380
 
1787
- <span class='kw'>true</span>
1381
+ <span class='id identifier rubyid_private'>private</span>
1382
+ <span class='comment'># Reads configuration.
1383
+ </span> <span class='comment'>#
1384
+ </span> <span class='comment'># @param options [Hash] The configuration to read.
1385
+ </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>
1386
+ <span class='kw'>begin</span>
1387
+ <span class='ivar'>@config</span> <span class='op'>=</span> <span class='const'>DevDNSd</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>
1388
+ <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='kw'>nil</span>
1389
+ <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>
1390
+ <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>
1391
+ <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>
1392
+ <span class='id identifier rubyid_raise'>raise</span> <span class='op'>::</span><span class='const'>SystemExit</span>
1393
+ <span class='kw'>end</span>
1394
+ <span class='kw'>end</span>
1788
1395
  <span class='kw'>end</span></pre>
1789
1396
  </td>
1790
1397
  </tr>
1791
1398
  </table>
1792
1399
  </div>
1793
1400
 
1401
+
1402
+ <span id="logger=-instance_method"></span>
1794
1403
  <div class="method_details ">
1795
- <h3 class="signature " id="dns_update-instance_method">
1404
+ <h3 class="signature " id="logger-instance_method">
1796
1405
 
1797
- - (<tt>Boolean</tt>) <strong>dns_update</strong>
1406
+ - (<tt>Bovem::Logger</tt>) <strong>logger</strong>
1798
1407
 
1799
1408
 
1800
1409
 
@@ -1802,7 +1411,7 @@
1802
1411
 
1803
1412
  </h3><div class="docstring">
1804
1413
  <div class="discussion">
1805
- <p>Updates DNS cache.</p>
1414
+ <p>The logger for this application.</p>
1806
1415
 
1807
1416
 
1808
1417
  </div>
@@ -1815,12 +1424,12 @@
1815
1424
  <li>
1816
1425
 
1817
1426
 
1818
- <span class='type'>(<tt>Boolean</tt>)</span>
1427
+ <span class='type'>(<tt>Bovem::Logger</tt>)</span>
1819
1428
 
1820
1429
 
1821
1430
 
1822
1431
  &mdash;
1823
- <div class='inline'><p><code>true</code> if command succeeded, <code>false</code> otherwise.</p>
1432
+ <div class='inline'><p>The logger for this application.</p>
1824
1433
  </div>
1825
1434
 
1826
1435
  </li>
@@ -1833,160 +1442,234 @@
1833
1442
  <pre class="lines">
1834
1443
 
1835
1444
 
1836
- 124
1837
- 125
1838
- 126
1839
- 127</pre>
1445
+ 375
1446
+ 376
1447
+ 377
1448
+ 378
1449
+ 379
1450
+ 380
1451
+ 381
1452
+ 382
1453
+ 383
1454
+ 384
1455
+ 385
1456
+ 386
1457
+ 387
1458
+ 388
1459
+ 389
1460
+ 390
1461
+ 391
1462
+ 392
1463
+ 393
1464
+ 394
1465
+ 395
1466
+ 396
1467
+ 397
1468
+ 398
1469
+ 399
1470
+ 400
1471
+ 401
1472
+ 402
1473
+ 403
1474
+ 404
1475
+ 405
1476
+ 406
1477
+ 407
1478
+ 408
1479
+ 409
1480
+ 410
1481
+ 411
1482
+ 412
1483
+ 413
1484
+ 414
1485
+ 415
1486
+ 416
1487
+ 417
1488
+ 418
1489
+ 419
1490
+ 420
1491
+ 421
1492
+ 422
1493
+ 423
1494
+ 424
1495
+ 425
1496
+ 426
1497
+ 427
1498
+ 428
1499
+ 429
1500
+ 430
1501
+ 431
1502
+ 432
1503
+ 433
1504
+ 434
1505
+ 435
1506
+ 436
1507
+ 437
1508
+ 438
1509
+ 439
1510
+ 440
1511
+ 441
1512
+ 442
1513
+ 443
1514
+ 444
1515
+ 445
1516
+ 446
1517
+ 447
1518
+ 448
1519
+ 449
1520
+ 450
1521
+ 451
1522
+ 452
1523
+ 453
1524
+ 454
1525
+ 455
1526
+ 456
1527
+ 457
1528
+ 458
1529
+ 459
1530
+ 460
1531
+ 461
1532
+ 462
1533
+ 463
1534
+ 464
1535
+ 465
1536
+ 466
1537
+ 467
1538
+ 468
1539
+ 469
1540
+ 470
1541
+ 471
1542
+ 472
1543
+ 473
1544
+ 474
1545
+ 475
1546
+ 476
1547
+ 477
1548
+ 478</pre>
1840
1549
  </td>
1841
1550
  <td>
1842
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 124</span>
1843
-
1844
- <span class='kw'>def</span> <span class='id identifier rubyid_dns_update'>dns_update</span>
1845
- <span class='ivar'>@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'>Flushing DNS cache and resolvers ...</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1846
- <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'>dscacheutil -flushcache</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1847
- <span class='kw'>end</span></pre>
1848
- </td>
1849
- </tr>
1850
- </table>
1851
- </div>
1852
-
1853
- <div class="method_details ">
1854
- <h3 class="signature " id="execute_command-instance_method">
1855
-
1856
- - (<tt>Boolean</tt>) <strong>execute_command</strong>(command)
1857
-
1858
-
1859
-
1860
-
1861
-
1862
- </h3><div class="docstring">
1863
- <div class="discussion">
1864
- <p>Executes a shell command.</p>
1551
+ <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 375</span>
1865
1552
 
1553
+ <span class='kw'>class</span> <span class='const'>Application</span> <span class='op'>&lt;</span> <span class='const'>RExec</span><span class='op'>::</span><span class='const'>Daemon</span><span class='op'>::</span><span class='const'>Base</span>
1554
+ <span class='comment'># Class for ANY DNS request.
1555
+ </span> <span class='const'>ANY_REQUEST</span> <span class='op'>=</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>ANY</span>
1866
1556
 
1867
- </div>
1868
- </div>
1869
- <div class="tags">
1870
- <p class="tag_title">Parameters:</p>
1871
- <ul class="param">
1872
-
1873
- <li>
1874
-
1875
- <span class='name'>command</span>
1876
-
1877
-
1878
- <span class='type'>(<tt>String</tt>)</span>
1879
-
1880
-
1881
-
1882
- &mdash;
1883
- <div class='inline'><p>The command to execute.</p>
1884
- </div>
1885
-
1886
- </li>
1887
-
1888
- </ul>
1557
+ <span class='comment'># List of classes handled in case of DNS request with resource class ANY.
1558
+ </span> <span class='const'>ANY_CLASSES</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>A</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>AAAA</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>ANY</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>CNAME</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>HINFO</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>MINFO</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>MX</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>NS</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>PTR</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>SOA</span><span class='comma'>,</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Resource</span><span class='op'>::</span><span class='const'>IN</span><span class='op'>::</span><span class='const'>TXT</span><span class='rbracket'>]</span>
1889
1559
 
1890
- <p class="tag_title">Returns:</p>
1891
- <ul class="return">
1892
-
1893
- <li>
1894
-
1895
-
1896
- <span class='type'>(<tt>Boolean</tt>)</span>
1897
-
1898
-
1899
-
1900
- &mdash;
1901
- <div class='inline'><p><code>true</code> if command succeeded, <code>false</code> otherwise.</p>
1902
- </div>
1903
-
1904
- </li>
1905
-
1906
- </ul>
1560
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Lazier</span><span class='op'>::</span><span class='const'>I18n</span>
1561
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>ApplicationMethods</span><span class='op'>::</span><span class='const'>System</span>
1562
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>ApplicationMethods</span><span class='op'>::</span><span class='const'>Server</span>
1907
1563
 
1908
- </div><table class="source_code">
1909
- <tr>
1910
- <td>
1911
- <pre class="lines">
1564
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:config</span>
1565
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:command</span>
1566
+ <span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:logger</span>
1567
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:locale</span>
1912
1568
 
1569
+ <span class='comment'># Creates a new application.
1570
+ </span> <span class='comment'>#
1571
+ </span> <span class='comment'># @param command [Mamertes::Command] The current Mamertes command.
1572
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for the application.
1573
+ </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>
1574
+ <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'>:devdnsd</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>
1575
+ <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>
1913
1576
 
1914
- 117
1915
- 118
1916
- 119</pre>
1917
- </td>
1918
- <td>
1919
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 117</span>
1577
+ <span class='ivar'>@locale</span> <span class='op'>=</span> <span class='id identifier rubyid_locale'>locale</span>
1578
+ <span class='ivar'>@command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span>
1579
+ <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>
1920
1580
 
1921
- <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>
1922
- <span class='id identifier rubyid_system'>system</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
1923
- <span class='kw'>end</span></pre>
1924
- </td>
1925
- </tr>
1926
- </table>
1927
- </div>
1928
-
1929
- <div class="method_details ">
1930
- <h3 class="signature " id="get_logger-instance_method">
1931
-
1932
- - (<tt>Logger</tt>) <strong>get_logger</strong>
1933
-
1581
+ <span class='comment'># Setup logger
1582
+ </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>
1583
+ <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>
1934
1584
 
1935
-
1585
+ <span class='comment'># Open configuration
1586
+ </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>
1936
1587
 
1937
-
1938
- </h3><div class="docstring">
1939
- <div class="discussion">
1940
- <p>Gets the current logger of the application.</p>
1588
+ <span class='kw'>self</span>
1589
+ <span class='kw'>end</span>
1941
1590
 
1591
+ <span class='comment'># Gets the current logger of the application.
1592
+ </span> <span class='comment'>#
1593
+ </span> <span class='comment'># @return [Logger] The current logger of the application.
1594
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_get_logger'>get_logger</span>
1595
+ <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_foreground'>foreground</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='op'>:</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>
1596
+ <span class='kw'>end</span>
1942
1597
 
1943
- </div>
1944
- </div>
1945
- <div class="tags">
1946
-
1947
- <p class="tag_title">Returns:</p>
1948
- <ul class="return">
1949
-
1950
- <li>
1951
-
1952
-
1953
- <span class='type'>(<tt>Logger</tt>)</span>
1954
-
1955
-
1956
-
1957
- &mdash;
1958
- <div class='inline'><p>The current logger of the application.</p>
1959
- </div>
1960
-
1961
- </li>
1962
-
1963
- </ul>
1598
+ <span class='comment'># This method is called when the server starts. By default is a no-op.
1599
+ </span> <span class='comment'>#
1600
+ </span> <span class='comment'># @return [NilClass] `nil`.
1601
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_on_start'>on_start</span>
1602
+ <span class='kw'>end</span>
1964
1603
 
1965
- </div><table class="source_code">
1966
- <tr>
1967
- <td>
1968
- <pre class="lines">
1604
+ <span class='comment'># This method is called when the server stop.
1605
+ </span> <span class='comment'>#
1606
+ </span> <span class='comment'># @return [NilClass] `nil`.
1607
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_on_stop'>on_stop</span>
1608
+ <span class='kw'>end</span>
1969
1609
 
1610
+ <span class='comment'># Returns a unique (singleton) instance of the application.
1611
+ </span> <span class='comment'>#
1612
+ </span> <span class='comment'># @param command [Mamertes::Command] The current Mamertes command.
1613
+ </span> <span class='comment'># @param locale [Symbol] The locale to use for the application.
1614
+ </span> <span class='comment'># @param force [Boolean] If to force recreation of the instance.
1615
+ </span> <span class='comment'># @return [Application] The unique (singleton) instance of the application.
1616
+ </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='op'>=</span> <span class='kw'>nil</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>
1617
+ <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>
1618
+ <span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>DevDNSd</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> <span class='kw'>if</span> <span class='id identifier rubyid_command'>command</span>
1619
+ <span class='ivar'>@instance</span>
1620
+ <span class='kw'>end</span>
1970
1621
 
1971
- 92
1972
- 93
1973
- 94</pre>
1974
- </td>
1975
- <td>
1976
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 92</span>
1622
+ <span class='comment'># Runs the application in foreground.
1623
+ </span> <span class='comment'>#
1624
+ </span> <span class='comment'># @see #perform_server
1625
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span>
1626
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_perform_server'>perform_server</span>
1627
+ <span class='kw'>end</span>
1977
1628
 
1978
- <span class='kw'>def</span> <span class='id identifier rubyid_get_logger'>get_logger</span>
1979
- <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_foreground'>foreground</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='op'>:</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>
1629
+ <span class='comment'># Stops the application.
1630
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_quit'>quit</span>
1631
+ <span class='op'>::</span><span class='const'>EventMachine</span><span class='period'>.</span><span class='id identifier rubyid_stop'>stop</span> <span class='kw'>rescue</span> <span class='kw'>nil</span>
1632
+ <span class='kw'>end</span>
1633
+
1634
+ <span class='comment'># Check if the current implementation supports DevDNSd.
1635
+ </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_check_ruby_implementation'>check_ruby_implementation</span>
1636
+ <span class='kw'>if</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='const'>Rubinius</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='const'>JRuby</span><span class='rparen'>)</span> <span class='kw'>then</span>
1637
+ <span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span><span class='lparen'>(</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='symbol'>:devdnsd</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><span class='period'>.</span><span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_no_jruby_rubinius'>no_jruby_rubinius</span><span class='rparen'>)</span>
1638
+ <span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
1639
+ <span class='kw'>end</span>
1640
+ <span class='kw'>end</span>
1641
+
1642
+ <span class='id identifier rubyid_private'>private</span>
1643
+ <span class='comment'># Reads configuration.
1644
+ </span> <span class='comment'>#
1645
+ </span> <span class='comment'># @param options [Hash] The configuration to read.
1646
+ </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>
1647
+ <span class='kw'>begin</span>
1648
+ <span class='ivar'>@config</span> <span class='op'>=</span> <span class='const'>DevDNSd</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>
1649
+ <span class='ivar'>@logger</span> <span class='op'>=</span> <span class='kw'>nil</span>
1650
+ <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>
1651
+ <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>
1652
+ <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>
1653
+ <span class='id identifier rubyid_raise'>raise</span> <span class='op'>::</span><span class='const'>SystemExit</span>
1654
+ <span class='kw'>end</span>
1655
+ <span class='kw'>end</span>
1980
1656
  <span class='kw'>end</span></pre>
1981
1657
  </td>
1982
1658
  </tr>
1983
1659
  </table>
1984
1660
  </div>
1985
1661
 
1986
- <div class="method_details ">
1987
- <h3 class="signature " id="is_osx?-instance_method">
1662
+ </div>
1663
+
1664
+
1665
+ <div id="class_method_details" class="method_details_list">
1666
+ <h2>Class Method Details</h2>
1667
+
1668
+
1669
+ <div class="method_details first">
1670
+ <h3 class="signature first" id="check_ruby_implementation-class_method">
1988
1671
 
1989
- - (<tt>Boolean</tt>) <strong>is_osx?</strong>
1672
+ + (<tt>Object</tt>) <strong>check_ruby_implementation</strong>
1990
1673
 
1991
1674
 
1992
1675
 
@@ -1994,31 +1677,13 @@
1994
1677
 
1995
1678
  </h3><div class="docstring">
1996
1679
  <div class="discussion">
1997
- <p>Check if we are running on MacOS X.
1998
- System services are only available on that platform.</p>
1680
+ <p>Check if the current implementation supports DevDNSd.</p>
1999
1681
 
2000
1682
 
2001
1683
  </div>
2002
1684
  </div>
2003
1685
  <div class="tags">
2004
1686
 
2005
- <p class="tag_title">Returns:</p>
2006
- <ul class="return">
2007
-
2008
- <li>
2009
-
2010
-
2011
- <span class='type'>(<tt>Boolean</tt>)</span>
2012
-
2013
-
2014
-
2015
- &mdash;
2016
- <div class='inline'><p><code>true</code> if the current platform is MacOS X, <code>false</code> otherwise.</p>
2017
- </div>
2018
-
2019
- </li>
2020
-
2021
- </ul>
2022
1687
 
2023
1688
  </div><table class="source_code">
2024
1689
  <tr>
@@ -2026,15 +1691,21 @@ System services are only available on that platform.</p>
2026
1691
  <pre class="lines">
2027
1692
 
2028
1693
 
2029
- 85
2030
- 86
2031
- 87</pre>
1694
+ 457
1695
+ 458
1696
+ 459
1697
+ 460
1698
+ 461
1699
+ 462</pre>
2032
1700
  </td>
2033
1701
  <td>
2034
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 85</span>
1702
+ <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 457</span>
2035
1703
 
2036
- <span class='kw'>def</span> <span class='id identifier rubyid_is_osx?'>is_osx?</span>
2037
- <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>
1704
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_check_ruby_implementation'>check_ruby_implementation</span>
1705
+ <span class='kw'>if</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='const'>Rubinius</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='const'>JRuby</span><span class='rparen'>)</span> <span class='kw'>then</span>
1706
+ <span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span><span class='lparen'>(</span><span class='const'>Lazier</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='symbol'>:devdnsd</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><span class='period'>.</span><span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_no_jruby_rubinius'>no_jruby_rubinius</span><span class='rparen'>)</span>
1707
+ <span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
1708
+ <span class='kw'>end</span>
2038
1709
  <span class='kw'>end</span></pre>
2039
1710
  </td>
2040
1711
  </tr>
@@ -2042,9 +1713,9 @@ System services are only available on that platform.</p>
2042
1713
  </div>
2043
1714
 
2044
1715
  <div class="method_details ">
2045
- <h3 class="signature " id="launch_agent_path-instance_method">
1716
+ <h3 class="signature " id="instance-class_method">
2046
1717
 
2047
- - (<tt>String</tt>) <strong>launch_agent_path</strong>(name = &quot;it.cowtech.devdnsd&quot;)
1718
+ + (<tt><span class='object_link'><a href="" title="DevDNSd::Application (class)">Application</a></span></tt>) <strong>instance</strong>(command = nil, locale = nil, force = false)
2048
1719
 
2049
1720
 
2050
1721
 
@@ -2052,7 +1723,7 @@ System services are only available on that platform.</p>
2052
1723
 
2053
1724
  </h3><div class="docstring">
2054
1725
  <div class="discussion">
2055
- <p>Gets the path for the launch agent file.</p>
1726
+ <p>Returns a unique (singleton) instance of the application.</p>
2056
1727
 
2057
1728
 
2058
1729
  </div>
@@ -2063,17 +1734,51 @@ System services are only available on that platform.</p>
2063
1734
 
2064
1735
  <li>
2065
1736
 
2066
- <span class='name'>name</span>
1737
+ <span class='name'>command</span>
1738
+
1739
+
1740
+ <span class='type'>(<tt>Mamertes::Command</tt>)</span>
1741
+
1742
+
1743
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
1744
+
1745
+
1746
+ &mdash;
1747
+ <div class='inline'><p>The current Mamertes command.</p>
1748
+ </div>
1749
+
1750
+ </li>
1751
+
1752
+ <li>
1753
+
1754
+ <span class='name'>locale</span>
1755
+
1756
+
1757
+ <span class='type'>(<tt>Symbol</tt>)</span>
1758
+
1759
+
1760
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
1761
+
1762
+
1763
+ &mdash;
1764
+ <div class='inline'><p>The locale to use for the application.</p>
1765
+ </div>
1766
+
1767
+ </li>
1768
+
1769
+ <li>
1770
+
1771
+ <span class='name'>force</span>
2067
1772
 
2068
1773
 
2069
- <span class='type'>(<tt>String</tt>)</span>
1774
+ <span class='type'>(<tt>Boolean</tt>)</span>
2070
1775
 
2071
1776
 
2072
- <em class="default">(defaults to: <tt>&quot;it.cowtech.devdnsd&quot;</tt>)</em>
1777
+ <em class="default">(defaults to: <tt>false</tt>)</em>
2073
1778
 
2074
1779
 
2075
1780
  &mdash;
2076
- <div class='inline'><p>The base name for the agent.</p>
1781
+ <div class='inline'><p>If to force recreation of the instance.</p>
2077
1782
  </div>
2078
1783
 
2079
1784
  </li>
@@ -2086,12 +1791,12 @@ System services are only available on that platform.</p>
2086
1791
  <li>
2087
1792
 
2088
1793
 
2089
- <span class='type'>(<tt>String</tt>)</span>
1794
+ <span class='type'>(<tt><span class='object_link'><a href="" title="DevDNSd::Application (class)">Application</a></span></tt>)</span>
2090
1795
 
2091
1796
 
2092
1797
 
2093
1798
  &mdash;
2094
- <div class='inline'><p>The path for the launch agent file.</p>
1799
+ <div class='inline'><p>The unique (singleton) instance of the application.</p>
2095
1800
  </div>
2096
1801
 
2097
1802
  </li>
@@ -2104,15 +1809,19 @@ System services are only available on that platform.</p>
2104
1809
  <pre class="lines">
2105
1810
 
2106
1811
 
2107
- 109
2108
- 110
2109
- 111</pre>
1812
+ 438
1813
+ 439
1814
+ 440
1815
+ 441
1816
+ 442</pre>
2110
1817
  </td>
2111
1818
  <td>
2112
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 109</span>
1819
+ <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 438</span>
2113
1820
 
2114
- <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.devdnsd</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
2115
- <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>
1821
+ <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='op'>=</span> <span class='kw'>nil</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>
1822
+ <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>
1823
+ <span class='ivar'>@instance</span> <span class='op'>||=</span> <span class='const'>DevDNSd</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> <span class='kw'>if</span> <span class='id identifier rubyid_command'>command</span>
1824
+ <span class='ivar'>@instance</span>
2116
1825
  <span class='kw'>end</span></pre>
2117
1826
  </td>
2118
1827
  </tr>
@@ -2120,9 +1829,9 @@ System services are only available on that platform.</p>
2120
1829
  </div>
2121
1830
 
2122
1831
  <div class="method_details ">
2123
- <h3 class="signature " id="on_start-instance_method">
1832
+ <h3 class="signature " id="quit-class_method">
2124
1833
 
2125
- - (<tt>NilClass</tt>) <strong>on_start</strong>
1834
+ + (<tt>Object</tt>) <strong>quit</strong>
2126
1835
 
2127
1836
 
2128
1837
 
@@ -2130,30 +1839,13 @@ System services are only available on that platform.</p>
2130
1839
 
2131
1840
  </h3><div class="docstring">
2132
1841
  <div class="discussion">
2133
- <p>This method is called when the server starts. By default is a no-op.</p>
1842
+ <p>Stops the application.</p>
2134
1843
 
2135
1844
 
2136
1845
  </div>
2137
1846
  </div>
2138
1847
  <div class="tags">
2139
1848
 
2140
- <p class="tag_title">Returns:</p>
2141
- <ul class="return">
2142
-
2143
- <li>
2144
-
2145
-
2146
- <span class='type'>(<tt>NilClass</tt>)</span>
2147
-
2148
-
2149
-
2150
- &mdash;
2151
- <div class='inline'><p><code>nil</code>.</p>
2152
- </div>
2153
-
2154
- </li>
2155
-
2156
- </ul>
2157
1849
 
2158
1850
  </div><table class="source_code">
2159
1851
  <tr>
@@ -2161,13 +1853,15 @@ System services are only available on that platform.</p>
2161
1853
  <pre class="lines">
2162
1854
 
2163
1855
 
2164
- 355
2165
- 356</pre>
1856
+ 452
1857
+ 453
1858
+ 454</pre>
2166
1859
  </td>
2167
1860
  <td>
2168
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 355</span>
1861
+ <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 452</span>
2169
1862
 
2170
- <span class='kw'>def</span> <span class='id identifier rubyid_on_start'>on_start</span>
1863
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_quit'>quit</span>
1864
+ <span class='op'>::</span><span class='const'>EventMachine</span><span class='period'>.</span><span class='id identifier rubyid_stop'>stop</span> <span class='kw'>rescue</span> <span class='kw'>nil</span>
2171
1865
  <span class='kw'>end</span></pre>
2172
1866
  </td>
2173
1867
  </tr>
@@ -2175,9 +1869,9 @@ System services are only available on that platform.</p>
2175
1869
  </div>
2176
1870
 
2177
1871
  <div class="method_details ">
2178
- <h3 class="signature " id="on_stop-instance_method">
1872
+ <h3 class="signature " id="run-class_method">
2179
1873
 
2180
- - (<tt>NilClass</tt>) <strong>on_stop</strong>
1874
+ + (<tt>Object</tt>) <strong>run</strong>
2181
1875
 
2182
1876
 
2183
1877
 
@@ -2185,30 +1879,20 @@ System services are only available on that platform.</p>
2185
1879
 
2186
1880
  </h3><div class="docstring">
2187
1881
  <div class="discussion">
2188
- <p>This method is called when the server stop.</p>
1882
+ <p>Runs the application in foreground.</p>
2189
1883
 
2190
1884
 
2191
1885
  </div>
2192
1886
  </div>
2193
1887
  <div class="tags">
2194
1888
 
2195
- <p class="tag_title">Returns:</p>
2196
- <ul class="return">
2197
-
2198
- <li>
2199
-
2200
-
2201
- <span class='type'>(<tt>NilClass</tt>)</span>
2202
-
2203
-
2204
-
2205
- &mdash;
2206
- <div class='inline'><p><code>nil</code>.</p>
2207
- </div>
2208
-
2209
- </li>
2210
-
2211
- </ul>
1889
+
1890
+ <p class="tag_title">See Also:</p>
1891
+ <ul class="see">
1892
+
1893
+ <li><span class='object_link'><a href="ApplicationMethods/Server.html#perform_server-instance_method" title="DevDNSd::ApplicationMethods::Server#perform_server (method)">DevDNSd::ApplicationMethods::Server#perform_server</a></span></li>
1894
+
1895
+ </ul>
2212
1896
 
2213
1897
  </div><table class="source_code">
2214
1898
  <tr>
@@ -2216,23 +1900,31 @@ System services are only available on that platform.</p>
2216
1900
  <pre class="lines">
2217
1901
 
2218
1902
 
2219
- 361
2220
- 362</pre>
1903
+ 447
1904
+ 448
1905
+ 449</pre>
2221
1906
  </td>
2222
1907
  <td>
2223
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 361</span>
1908
+ <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 447</span>
2224
1909
 
2225
- <span class='kw'>def</span> <span class='id identifier rubyid_on_stop'>on_stop</span>
1910
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span>
1911
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_perform_server'>perform_server</span>
2226
1912
  <span class='kw'>end</span></pre>
2227
1913
  </td>
2228
1914
  </tr>
2229
1915
  </table>
2230
1916
  </div>
2231
1917
 
2232
- <div class="method_details ">
2233
- <h3 class="signature " id="perform_server-instance_method">
1918
+ </div>
1919
+
1920
+ <div id="instance_method_details" class="method_details_list">
1921
+ <h2>Instance Method Details</h2>
1922
+
1923
+
1924
+ <div class="method_details first">
1925
+ <h3 class="signature first" id="get_logger-instance_method">
2234
1926
 
2235
- - (<tt>Object</tt>) <strong>perform_server</strong>
1927
+ - (<tt>Logger</tt>) <strong>get_logger</strong>
2236
1928
 
2237
1929
 
2238
1930
 
@@ -2240,7 +1932,7 @@ System services are only available on that platform.</p>
2240
1932
 
2241
1933
  </h3><div class="docstring">
2242
1934
  <div class="discussion">
2243
- <p>Starts the DNS server.</p>
1935
+ <p>Gets the current logger of the application.</p>
2244
1936
 
2245
1937
 
2246
1938
  </div>
@@ -2253,12 +1945,12 @@ System services are only available on that platform.</p>
2253
1945
  <li>
2254
1946
 
2255
1947
 
2256
- <span class='type'>(<tt>Object</tt>)</span>
1948
+ <span class='type'>(<tt>Logger</tt>)</span>
2257
1949
 
2258
1950
 
2259
1951
 
2260
1952
  &mdash;
2261
- <div class='inline'><p>The result of stop callbacks.</p>
1953
+ <div class='inline'><p>The current logger of the application.</p>
2262
1954
  </div>
2263
1955
 
2264
1956
  </li>
@@ -2271,89 +1963,15 @@ System services are only available on that platform.</p>
2271
1963
  <pre class="lines">
2272
1964
 
2273
1965
 
2274
- 132
2275
- 133
2276
- 134
2277
- 135
2278
- 136
2279
- 137
2280
- 138
2281
- 139
2282
- 140
2283
- 141
2284
- 142
2285
- 143
2286
- 144
2287
- 145
2288
- 146
2289
- 147
2290
- 148
2291
- 149
2292
- 150
2293
- 151
2294
- 152
2295
- 153
2296
- 154
2297
- 155
2298
- 156
2299
- 157
2300
- 158
2301
- 159
2302
- 160
2303
- 161
2304
- 162
2305
- 163
2306
- 164
2307
- 165
2308
- 166
2309
- 167
2310
- 168
2311
- 169
2312
- 170
2313
- 171</pre>
1966
+ 416
1967
+ 417
1968
+ 418</pre>
2314
1969
  </td>
2315
1970
  <td>
2316
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 132</span>
2317
-
2318
- <span class='kw'>def</span> <span class='id identifier rubyid_perform_server'>perform_server</span>
2319
- <span class='const'>RubyDNS</span><span class='op'>::</span><span class='id identifier rubyid_run_server'>run_server</span><span class='lparen'>(</span><span class='symbol'>:listen</span> <span class='op'>=&gt;</span> <span class='lbracket'>[</span><span class='lbracket'>[</span><span class='symbol'>:udp</span><span class='comma'>,</span> <span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_address'>address</span><span class='comma'>,</span> <span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span><span class='period'>.</span><span class='id identifier rubyid_to_integer'>to_integer</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>do</span>
2320
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_logger'>logger</span> <span class='op'>=</span> <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>Application</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_logger'>logger</span>
2321
-
2322
- <span class='id identifier rubyid_match'>match</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>.+</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>Application</span><span class='op'>::</span><span class='const'>ANY_CLASSES</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_match_data'>match_data</span><span class='comma'>,</span> <span class='id identifier rubyid_transaction'>transaction</span><span class='op'>|</span>
2323
- <span class='id identifier rubyid_transaction'>transaction</span><span class='period'>.</span><span class='id identifier rubyid_append_question!'>append_question!</span>
2324
-
2325
- <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>Application</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_rules'>rules</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_rule'>rule</span><span class='op'>|</span>
2326
- <span class='kw'>begin</span>
2327
- <span class='comment'># Get the subset of handled class that is valid for the rule
2328
- </span> <span class='id identifier rubyid_resource_classes'>resource_classes</span> <span class='op'>=</span> <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>Application</span><span class='op'>::</span><span class='const'>ANY_CLASSES</span> <span class='op'>&amp;</span> <span class='id identifier rubyid_rule'>rule</span><span class='period'>.</span><span class='id identifier rubyid_resource_class'>resource_class</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span>
2329
- <span class='id identifier rubyid_resource_classes'>resource_classes</span> <span class='op'>=</span> <span class='id identifier rubyid_resource_classes'>resource_classes</span> <span class='op'>&amp;</span> <span class='lbracket'>[</span><span class='id identifier rubyid_transaction'>transaction</span><span class='period'>.</span><span class='id identifier rubyid_resource_class'>resource_class</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_transaction'>transaction</span><span class='period'>.</span><span class='id identifier rubyid_resource_class'>resource_class</span> <span class='op'>!=</span> <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>Application</span><span class='op'>::</span><span class='const'>ANY_REQUEST</span>
2330
-
2331
- <span class='kw'>if</span> <span class='id identifier rubyid_resource_classes'>resource_classes</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span> <span class='kw'>then</span>
2332
- <span class='id identifier rubyid_resource_classes'>resource_classes</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_resource_class'>resource_class</span><span class='op'>|</span> <span class='comment'># Now for every class
2333
- </span> <span class='id identifier rubyid_matches'>matches</span> <span class='op'>=</span> <span class='id identifier rubyid_rule'>rule</span><span class='period'>.</span><span class='id identifier rubyid_match_host'>match_host</span><span class='lparen'>(</span><span class='id identifier rubyid_match_data'>match_data</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rparen'>)</span>
2334
- <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>Application</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_process_rule'>process_rule</span><span class='lparen'>(</span><span class='id identifier rubyid_rule'>rule</span><span class='comma'>,</span> <span class='id identifier rubyid_resource_class'>resource_class</span><span class='comma'>,</span> <span class='id identifier rubyid_rule'>rule</span><span class='period'>.</span><span class='id identifier rubyid_is_regexp?'>is_regexp?</span> <span class='op'>?</span> <span class='id identifier rubyid_matches'>matches</span> <span class='op'>:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_transaction'>transaction</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_matches'>matches</span>
2335
- <span class='kw'>end</span>
2336
- <span class='kw'>end</span>
2337
- <span class='kw'>rescue</span> <span class='op'>::</span><span class='const'>Exception</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
2338
- <span class='id identifier rubyid_raise'>raise</span> <span class='id identifier rubyid_e'>e</span>
2339
- <span class='kw'>end</span>
2340
- <span class='kw'>end</span>
2341
- <span class='kw'>end</span>
2342
-
2343
- <span class='comment'># Default DNS handler
2344
- </span> <span class='id identifier rubyid_otherwise'>otherwise</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_transaction'>transaction</span><span class='op'>|</span>
2345
- <span class='id identifier rubyid_transaction'>transaction</span><span class='period'>.</span><span class='id identifier rubyid_failure!'>failure!</span><span class='lparen'>(</span><span class='symbol'>:NXDomain</span><span class='rparen'>)</span>
2346
- <span class='kw'>end</span>
2347
-
2348
- <span class='comment'># Attach event handlers
2349
- </span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_on'>on</span><span class='lparen'>(</span><span class='symbol'>:start</span><span class='rparen'>)</span> <span class='kw'>do</span>
2350
- <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>Application</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_on_start'>on_start</span>
2351
- <span class='kw'>end</span>
1971
+ <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 416</span>
2352
1972
 
2353
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_on'>on</span><span class='lparen'>(</span><span class='symbol'>:stop</span><span class='rparen'>)</span> <span class='kw'>do</span>
2354
- <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>Application</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_on_stop'>on_stop</span>
2355
- <span class='kw'>end</span>
2356
- <span class='kw'>end</span>
1973
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_logger'>get_logger</span>
1974
+ <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_foreground'>foreground</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='op'>:</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>
2357
1975
  <span class='kw'>end</span></pre>
2358
1976
  </td>
2359
1977
  </tr>
@@ -2361,9 +1979,9 @@ System services are only available on that platform.</p>
2361
1979
  </div>
2362
1980
 
2363
1981
  <div class="method_details ">
2364
- <h3 class="signature " id="process_rule-instance_method">
1982
+ <h3 class="signature " id="on_start-instance_method">
2365
1983
 
2366
- - (<tt>Object</tt>) <strong>process_rule</strong>(rule, type, match_data, transaction)
1984
+ - (<tt>NilClass</tt>) <strong>on_start</strong>
2367
1985
 
2368
1986
 
2369
1987
 
@@ -2371,89 +1989,25 @@ System services are only available on that platform.</p>
2371
1989
 
2372
1990
  </h3><div class="docstring">
2373
1991
  <div class="discussion">
2374
- <p>Processes a DNS rule.</p>
1992
+ <p>This method is called when the server starts. By default is a no-op.</p>
2375
1993
 
2376
1994
 
2377
1995
  </div>
2378
1996
  </div>
2379
1997
  <div class="tags">
2380
- <p class="tag_title">Parameters:</p>
2381
- <ul class="param">
2382
-
2383
- <li>
2384
-
2385
- <span class='name'>rule</span>
2386
-
2387
-
2388
- <span class='type'>(<tt><span class='object_link'><a href="Rule.html" title="DevDNSd::Rule (class)">Rule</a></span></tt>)</span>
2389
-
2390
-
2391
-
2392
- &mdash;
2393
- <div class='inline'><p>The rule to process.</p>
2394
- </div>
2395
-
2396
- </li>
2397
-
2398
- <li>
2399
-
2400
- <span class='name'>type</span>
2401
-
2402
-
2403
- <span class='type'>(<tt>Class</tt>)</span>
2404
-
2405
-
2406
-
2407
- &mdash;
2408
- <div class='inline'><p>The type of request.</p>
2409
- </div>
2410
-
2411
- </li>
2412
-
2413
- <li>
2414
-
2415
- <span class='name'>match_data</span>
2416
-
2417
-
2418
- <span class='type'>(<tt>MatchData|nil</tt>)</span>
2419
-
2420
-
2421
-
2422
- &mdash;
2423
- <div class='inline'><p>If the rule pattern was a Regexp, then this holds the match data, otherwise <code>nil</code> is passed.</p>
2424
- </div>
2425
-
2426
- </li>
2427
-
2428
- <li>
2429
-
2430
- <span class='name'>transaction</span>
2431
-
2432
-
2433
- <span class='type'>(<tt>Transaction</tt>)</span>
2434
-
2435
-
2436
-
2437
- &mdash;
2438
- <div class='inline'><p>The current DNS transaction (<a href="http://rubydoc.info/gems/rubydns/RubyDNS/Transaction">http://rubydoc.info/gems/rubydns/RubyDNS/Transaction</a>).</p>
2439
- </div>
2440
-
2441
- </li>
2442
1998
 
2443
- </ul>
2444
-
2445
1999
  <p class="tag_title">Returns:</p>
2446
2000
  <ul class="return">
2447
2001
 
2448
2002
  <li>
2449
2003
 
2450
2004
 
2451
- <span class='type'></span>
2005
+ <span class='type'>(<tt>NilClass</tt>)</span>
2452
2006
 
2453
2007
 
2454
2008
 
2455
-
2456
- <div class='inline'><p>A reply for the request if matched, otherwise <code>false</code> or <code>nil</code>.</p>
2009
+ &mdash;
2010
+ <div class='inline'><p><code>nil</code>.</p>
2457
2011
  </div>
2458
2012
 
2459
2013
  </li>
@@ -2466,97 +2020,13 @@ System services are only available on that platform.</p>
2466
2020
  <pre class="lines">
2467
2021
 
2468
2022
 
2469
- 180
2470
- 181
2471
- 182
2472
- 183
2473
- 184
2474
- 185
2475
- 186
2476
- 187
2477
- 188
2478
- 189
2479
- 190
2480
- 191
2481
- 192
2482
- 193
2483
- 194
2484
- 195
2485
- 196
2486
- 197
2487
- 198
2488
- 199
2489
- 200
2490
- 201
2491
- 202
2492
- 203
2493
- 204
2494
- 205
2495
- 206
2496
- 207
2497
- 208
2498
- 209
2499
- 210
2500
- 211
2501
- 212
2502
- 213
2503
- 214
2504
- 215
2505
- 216
2506
- 217
2507
- 218
2508
- 219
2509
- 220
2510
- 221
2511
- 222
2512
- 223</pre>
2023
+ 423
2024
+ 424</pre>
2513
2025
  </td>
2514
2026
  <td>
2515
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 180</span>
2516
-
2517
- <span class='kw'>def</span> <span class='id identifier rubyid_process_rule'>process_rule</span><span class='lparen'>(</span><span class='id identifier rubyid_rule'>rule</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_match_data'>match_data</span><span class='comma'>,</span> <span class='id identifier rubyid_transaction'>transaction</span><span class='rparen'>)</span>
2518
- <span class='id identifier rubyid_is_regex'>is_regex</span> <span class='op'>=</span> <span class='id identifier rubyid_rule'>rule</span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>Regexp</span><span class='rparen'>)</span>
2519
- <span class='id identifier rubyid_type'>type</span> <span class='op'>=</span> <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>Rule</span><span class='period'>.</span><span class='id identifier rubyid_resource_class_to_symbol'>resource_class_to_symbol</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span>
2520
-
2521
- <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>Application</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_logger'>logger</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Found match on </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_rule'>rule</span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='rbrace'>}</span><span class='tstring_content'> with type </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>
2522
-
2523
- <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_rule'>rule</span><span class='period'>.</span><span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='kw'>then</span>
2524
- <span class='id identifier rubyid_reply'>reply</span> <span class='op'>=</span> <span class='id identifier rubyid_rule'>rule</span><span class='period'>.</span><span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_match_data'>match_data</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_transaction'>transaction</span><span class='rparen'>)</span>
2525
- <span class='kw'>else</span>
2526
- <span class='id identifier rubyid_reply'>reply</span> <span class='op'>=</span> <span class='id identifier rubyid_rule'>rule</span><span class='period'>.</span><span class='id identifier rubyid_reply'>reply</span>
2527
- <span class='kw'>end</span>
2528
-
2529
- <span class='kw'>if</span> <span class='id identifier rubyid_is_regex'>is_regex</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_reply'>reply</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_match_data'>match_data</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='kw'>then</span>
2530
- <span class='id identifier rubyid_reply'>reply</span> <span class='op'>=</span> <span class='id identifier rubyid_match_data'>match_data</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='id identifier rubyid_rule'>rule</span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='comma'>,</span> <span class='id identifier rubyid_reply'>reply</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'>$</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'>\\</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
2531
- <span class='kw'>end</span>
2532
-
2533
- <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>Application</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_logger'>logger</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span><span class='lparen'>(</span><span class='id identifier rubyid_reply'>reply</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Reply is </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_reply'>reply</span><span class='rbrace'>}</span><span class='tstring_content'> with type </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='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>No reply found.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
2027
+ <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 423</span>
2534
2028
 
2535
- <span class='kw'>if</span> <span class='id identifier rubyid_reply'>reply</span> <span class='kw'>then</span>
2536
- <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='id identifier rubyid_rule'>rule</span><span class='period'>.</span><span class='id identifier rubyid_options'>options</span>
2537
-
2538
- <span class='id identifier rubyid_final_reply'>final_reply</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
2539
-
2540
- <span class='kw'>case</span> <span class='id identifier rubyid_type'>type</span>
2541
- <span class='kw'>when</span> <span class='symbol'>:MX</span>
2542
- <span class='id identifier rubyid_preference'>preference</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:preference</span><span class='rparen'>)</span>
2543
- <span class='id identifier rubyid_preference'>preference</span> <span class='op'>=</span> <span class='id identifier rubyid_preference'>preference</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='int'>10</span> <span class='op'>:</span> <span class='id identifier rubyid_preference'>preference</span><span class='period'>.</span><span class='id identifier rubyid_to_integer'>to_integer</span><span class='lparen'>(</span><span class='int'>10</span><span class='rparen'>)</span>
2544
- <span class='id identifier rubyid_final_reply'>final_reply</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_preference'>preference</span>
2545
- <span class='kw'>end</span>
2546
-
2547
- <span class='kw'>if</span> <span class='lbracket'>[</span><span class='symbol'>:A</span><span class='comma'>,</span> <span class='symbol'>:AAAA</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span> <span class='kw'>then</span>
2548
- <span class='id identifier rubyid_final_reply'>final_reply</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_reply'>reply</span>
2549
- <span class='kw'>else</span>
2550
- <span class='id identifier rubyid_final_reply'>final_reply</span> <span class='op'>&lt;&lt;</span> <span class='const'>Resolv</span><span class='op'>::</span><span class='const'>DNS</span><span class='op'>::</span><span class='const'>Name</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_reply'>reply</span><span class='rparen'>)</span>
2551
- <span class='kw'>end</span>
2552
-
2553
- <span class='id identifier rubyid_final_reply'>final_reply</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='symbol'>:resource_class</span> <span class='op'>=&gt;</span> <span class='const'>DevDNSd</span><span class='op'>::</span><span class='const'>Rule</span><span class='period'>.</span><span class='id identifier rubyid_symbol_to_resource_class'>symbol_to_resource_class</span><span class='lparen'>(</span><span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='rparen'>)</span>
2554
- <span class='id identifier rubyid_transaction'>transaction</span><span class='period'>.</span><span class='id identifier rubyid_respond!'>respond!</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_final_reply'>final_reply</span><span class='rparen'>)</span>
2555
- <span class='kw'>elsif</span> <span class='id identifier rubyid_reply'>reply</span> <span class='op'>==</span> <span class='kw'>false</span> <span class='kw'>then</span>
2556
- <span class='kw'>false</span>
2557
- <span class='kw'>else</span>
2558
- <span class='id identifier rubyid_reply'>reply</span>
2559
- <span class='kw'>end</span>
2029
+ <span class='kw'>def</span> <span class='id identifier rubyid_on_start'>on_start</span>
2560
2030
  <span class='kw'>end</span></pre>
2561
2031
  </td>
2562
2032
  </tr>
@@ -2564,9 +2034,9 @@ System services are only available on that platform.</p>
2564
2034
  </div>
2565
2035
 
2566
2036
  <div class="method_details ">
2567
- <h3 class="signature " id="resolver_path-instance_method">
2037
+ <h3 class="signature " id="on_stop-instance_method">
2568
2038
 
2569
- - (<tt>String</tt>) <strong>resolver_path</strong>(tld = nil)
2039
+ - (<tt>NilClass</tt>) <strong>on_stop</strong>
2570
2040
 
2571
2041
 
2572
2042
 
@@ -2574,46 +2044,25 @@ System services are only available on that platform.</p>
2574
2044
 
2575
2045
  </h3><div class="docstring">
2576
2046
  <div class="discussion">
2577
- <p>Gets the path for the resolver file.</p>
2047
+ <p>This method is called when the server stop.</p>
2578
2048
 
2579
2049
 
2580
2050
  </div>
2581
2051
  </div>
2582
2052
  <div class="tags">
2583
- <p class="tag_title">Parameters:</p>
2584
- <ul class="param">
2585
-
2586
- <li>
2587
-
2588
- <span class='name'>tld</span>
2589
-
2590
-
2591
- <span class='type'>(<tt>String</tt>)</span>
2592
-
2593
-
2594
- <em class="default">(defaults to: <tt>nil</tt>)</em>
2595
-
2596
-
2597
- &mdash;
2598
- <div class='inline'><p>The TLD to manage.</p>
2599
- </div>
2600
-
2601
- </li>
2602
2053
 
2603
- </ul>
2604
-
2605
2054
  <p class="tag_title">Returns:</p>
2606
2055
  <ul class="return">
2607
2056
 
2608
2057
  <li>
2609
2058
 
2610
2059
 
2611
- <span class='type'>(<tt>String</tt>)</span>
2060
+ <span class='type'>(<tt>NilClass</tt>)</span>
2612
2061
 
2613
2062
 
2614
2063
 
2615
2064
  &mdash;
2616
- <div class='inline'><p>The path for the resolver file.</p>
2065
+ <div class='inline'><p><code>nil</code>.</p>
2617
2066
  </div>
2618
2067
 
2619
2068
  </li>
@@ -2626,17 +2075,13 @@ System services are only available on that platform.</p>
2626
2075
  <pre class="lines">
2627
2076
 
2628
2077
 
2629
- 100
2630
- 101
2631
- 102
2632
- 103</pre>
2078
+ 429
2079
+ 430</pre>
2633
2080
  </td>
2634
2081
  <td>
2635
- <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 100</span>
2082
+ <pre class="code"><span class="info file"># File 'lib/devdnsd/application.rb', line 429</span>
2636
2083
 
2637
- <span class='kw'>def</span> <span class='id identifier rubyid_resolver_path'>resolver_path</span><span class='lparen'>(</span><span class='id identifier rubyid_tld'>tld</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
2638
- <span class='id identifier rubyid_tld'>tld</span> <span class='op'>||=</span> <span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_tld'>tld</span>
2639
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/etc/resolver/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_tld'>tld</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
2084
+ <span class='kw'>def</span> <span class='id identifier rubyid_on_stop'>on_stop</span>
2640
2085
  <span class='kw'>end</span></pre>
2641
2086
  </td>
2642
2087
  </tr>
@@ -2648,9 +2093,9 @@ System services are only available on that platform.</p>
2648
2093
  </div>
2649
2094
 
2650
2095
  <div id="footer">
2651
- Generated on Mon Oct 22 09:34:23 2012 by
2096
+ Generated on Sun Feb 10 13:20:34 2013 by
2652
2097
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2653
- 0.8.2.1 (ruby-1.9.2).
2098
+ 0.8.4.1 (ruby-1.9.3).
2654
2099
  </div>
2655
2100
 
2656
2101
  </body>