devdnsd 1.7.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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>