term_utils 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/COPYING +3 -3
  4. data/README.md +7 -1
  5. data/doc/TermUtils/AP/Article.html +991 -0
  6. data/doc/TermUtils/AP/Element.html +1025 -0
  7. data/doc/TermUtils/AP/Flag.html +539 -0
  8. data/doc/TermUtils/AP/Level.html +638 -0
  9. data/doc/TermUtils/AP/NoSuchValueError.html +217 -0
  10. data/doc/TermUtils/AP/Parameter.html +804 -0
  11. data/doc/TermUtils/AP/ParseError.html +217 -0
  12. data/doc/TermUtils/AP/Parser.html +572 -0
  13. data/doc/TermUtils/AP/Result.html +1029 -0
  14. data/doc/TermUtils/AP/ResultView.html +597 -0
  15. data/doc/TermUtils/AP/Syntax.html +1051 -0
  16. data/doc/TermUtils/AP/SyntaxError.html +217 -0
  17. data/doc/TermUtils/AP.html +505 -0
  18. data/doc/TermUtils/FF/Config.html +1 -1
  19. data/doc/TermUtils/FF/Cursor/Context.html +1 -1
  20. data/doc/TermUtils/FF/Cursor.html +1 -1
  21. data/doc/TermUtils/FF/Query.html +1 -1
  22. data/doc/TermUtils/FF.html +1 -1
  23. data/doc/TermUtils/PropertyTreeNode.html +1999 -0
  24. data/doc/TermUtils/Tab/Column.html +1 -1
  25. data/doc/TermUtils/Tab/Holder.html +1 -1
  26. data/doc/TermUtils/Tab/Printer.html +1 -1
  27. data/doc/TermUtils/Tab/Table.html +1 -1
  28. data/doc/TermUtils/Tab.html +1 -1
  29. data/doc/TermUtils.html +5 -3
  30. data/doc/_index.html +143 -1
  31. data/doc/class_list.html +1 -1
  32. data/doc/file.README.html +8 -2
  33. data/doc/index.html +8 -2
  34. data/doc/method_list.html +638 -22
  35. data/doc/top-level-namespace.html +1 -1
  36. data/lib/term_utils/ap/article.rb +68 -0
  37. data/lib/term_utils/ap/element.rb +78 -0
  38. data/lib/term_utils/ap/flag.rb +48 -0
  39. data/lib/term_utils/ap/level.rb +57 -0
  40. data/lib/term_utils/ap/no_such_value_error.rb +27 -0
  41. data/lib/term_utils/ap/parameter.rb +75 -0
  42. data/lib/term_utils/ap/parse_error.rb +27 -0
  43. data/lib/term_utils/ap/parser.rb +185 -0
  44. data/lib/term_utils/ap/result.rb +175 -0
  45. data/lib/term_utils/ap/syntax.rb +112 -0
  46. data/lib/term_utils/ap/syntax_error.rb +27 -0
  47. data/lib/term_utils/ap.rb +59 -0
  48. data/lib/term_utils/property_tree_node.rb +200 -0
  49. data/lib/term_utils.rb +1 -0
  50. data/term_utils.gemspec +2 -2
  51. metadata +29 -2
@@ -0,0 +1,1999 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Class: TermUtils::PropertyTreeNode
8
+
9
+ &mdash; Documentation by YARD 0.9.20
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ pathId = "TermUtils::PropertyTreeNode";
19
+ relpath = '../';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="../class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="../_index.html">Index (P)</a> &raquo;
40
+ <span class='title'><span class='object_link'><a href="../TermUtils.html" title="TermUtils (module)">TermUtils</a></span></span>
41
+ &raquo;
42
+ <span class="title">PropertyTreeNode</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="../class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Class: TermUtils::PropertyTreeNode
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+ <dl>
70
+ <dt>Inherits:</dt>
71
+ <dd>
72
+ <span class="inheritName">Object</span>
73
+
74
+ <ul class="fullTree">
75
+ <li>Object</li>
76
+
77
+ <li class="next">TermUtils::PropertyTreeNode</li>
78
+
79
+ </ul>
80
+ <a href="#" class="inheritanceTree">show all</a>
81
+
82
+ </dd>
83
+ </dl>
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+ <dl>
96
+ <dt>Defined in:</dt>
97
+ <dd>lib/term_utils/property_tree_node.rb</dd>
98
+ </dl>
99
+
100
+ </div>
101
+
102
+ <h2>Overview</h2><div class="docstring">
103
+ <div class="discussion">
104
+
105
+ <p>Represents a general-purpose tree node that holds a key-value pair.</p>
106
+
107
+
108
+ </div>
109
+ </div>
110
+ <div class="tags">
111
+
112
+
113
+ </div>
114
+
115
+
116
+
117
+ <h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
118
+ <ul class="summary">
119
+
120
+ <li class="public ">
121
+ <span class="summary_signature">
122
+
123
+ <a href="#child_nodes-instance_method" title="#child_nodes (instance method)">#<strong>child_nodes</strong> &#x21d2; Array&lt;TermUtils::PropertyTreeNode&gt; </a>
124
+
125
+
126
+
127
+ </span>
128
+
129
+
130
+
131
+
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+ <span class="summary_desc"><div class='inline'></div></span>
141
+
142
+ </li>
143
+
144
+
145
+ <li class="public ">
146
+ <span class="summary_signature">
147
+
148
+ <a href="#key-instance_method" title="#key (instance method)">#<strong>key</strong> &#x21d2; Object </a>
149
+
150
+
151
+
152
+ </span>
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+ <span class="summary_desc"><div class='inline'></div></span>
166
+
167
+ </li>
168
+
169
+
170
+ <li class="public ">
171
+ <span class="summary_signature">
172
+
173
+ <a href="#parent_node-instance_method" title="#parent_node (instance method)">#<strong>parent_node</strong> &#x21d2; TermUtils::PropertyTreeNode </a>
174
+
175
+
176
+
177
+ </span>
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+ <span class="summary_desc"><div class='inline'></div></span>
191
+
192
+ </li>
193
+
194
+
195
+ <li class="public ">
196
+ <span class="summary_signature">
197
+
198
+ <a href="#value-instance_method" title="#value (instance method)">#<strong>value</strong> &#x21d2; Object </a>
199
+
200
+
201
+
202
+ </span>
203
+
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+ <span class="summary_desc"><div class='inline'></div></span>
216
+
217
+ </li>
218
+
219
+
220
+ </ul>
221
+
222
+
223
+
224
+
225
+
226
+ <h2>
227
+ Instance Method Summary
228
+ <small><a href="#" class="summary_toggle">collapse</a></small>
229
+ </h2>
230
+
231
+ <ul class="summary">
232
+
233
+ <li class="public ">
234
+ <span class="summary_signature">
235
+
236
+ <a href="#child_node-instance_method" title="#child_node (instance method)">#<strong>child_node</strong>(key) &#x21d2; TermUtils::PropertyTreeNode<sup>?</sup> </a>
237
+
238
+
239
+
240
+ </span>
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+ <span class="summary_desc"><div class='inline'>
251
+ <p>Returns the child node identified by a given key.</p>
252
+ </div></span>
253
+
254
+ </li>
255
+
256
+
257
+ <li class="public ">
258
+ <span class="summary_signature">
259
+
260
+ <a href="#collect_nodes-instance_method" title="#collect_nodes (instance method)">#<strong>collect_nodes</strong>(opts = {}) &#x21d2; Array&lt;TermUtils::PropertyTreeNode&gt; </a>
261
+
262
+
263
+
264
+ </span>
265
+
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+ <span class="summary_desc"><div class='inline'>
275
+ <p>Collects nodes.</p>
276
+ </div></span>
277
+
278
+ </li>
279
+
280
+
281
+ <li class="public ">
282
+ <span class="summary_signature">
283
+
284
+ <a href="#collect_paths-instance_method" title="#collect_paths (instance method)">#<strong>collect_paths</strong>(opts = {}) &#x21d2; Array&lt;Array&lt;Object&gt;&gt; </a>
285
+
286
+
287
+
288
+ </span>
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+ <span class="summary_desc"><div class='inline'>
299
+ <p>Collects node paths.</p>
300
+ </div></span>
301
+
302
+ </li>
303
+
304
+
305
+ <li class="public ">
306
+ <span class="summary_signature">
307
+
308
+ <a href="#collect_values-instance_method" title="#collect_values (instance method)">#<strong>collect_values</strong>(opts = {}) &#x21d2; Array&lt;Object&gt; </a>
309
+
310
+
311
+
312
+ </span>
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+ <span class="summary_desc"><div class='inline'>
323
+ <p>Collect node values.</p>
324
+ </div></span>
325
+
326
+ </li>
327
+
328
+
329
+ <li class="public ">
330
+ <span class="summary_signature">
331
+
332
+ <a href="#define_node-instance_method" title="#define_node (instance method)">#<strong>define_node</strong>(opts = {}, &amp;block) &#x21d2; TermUtils::PropertyTreeNode </a>
333
+
334
+
335
+
336
+ </span>
337
+
338
+
339
+
340
+
341
+
342
+
343
+
344
+
345
+
346
+ <span class="summary_desc"><div class='inline'>
347
+ <p>Creates a new node and adds it as a child.</p>
348
+ </div></span>
349
+
350
+ </li>
351
+
352
+
353
+ <li class="public ">
354
+ <span class="summary_signature">
355
+
356
+ <a href="#each_node-instance_method" title="#each_node (instance method)">#<strong>each_node</strong>(opts = {}, &amp;block) &#x21d2; nil </a>
357
+
358
+
359
+
360
+ </span>
361
+
362
+
363
+
364
+
365
+
366
+
367
+
368
+
369
+
370
+ <span class="summary_desc"><div class='inline'>
371
+ <p>Iterates over every node.</p>
372
+ </div></span>
373
+
374
+ </li>
375
+
376
+
377
+ <li class="public ">
378
+ <span class="summary_signature">
379
+
380
+ <a href="#eval_child_count-instance_method" title="#eval_child_count (instance method)">#<strong>eval_child_count</strong>(path) &#x21d2; Integer </a>
381
+
382
+
383
+
384
+ </span>
385
+
386
+
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+ <span class="summary_desc"><div class='inline'>
395
+ <p>Evaluates the total number of nodes in the tree represented by this one.</p>
396
+ </div></span>
397
+
398
+ </li>
399
+
400
+
401
+ <li class="public ">
402
+ <span class="summary_signature">
403
+
404
+ <a href="#find_node-instance_method" title="#find_node (instance method)">#<strong>find_node</strong>(path) &#x21d2; TermUtils::PropertyTreeNode </a>
405
+
406
+
407
+
408
+ </span>
409
+
410
+
411
+
412
+
413
+
414
+
415
+
416
+
417
+
418
+ <span class="summary_desc"><div class='inline'>
419
+ <p>Finds the node identified by a given path of keys.</p>
420
+ </div></span>
421
+
422
+ </li>
423
+
424
+
425
+ <li class="public ">
426
+ <span class="summary_signature">
427
+
428
+ <a href="#find_node_value-instance_method" title="#find_node_value (instance method)">#<strong>find_node_value</strong>(path) &#x21d2; Object </a>
429
+
430
+
431
+
432
+ </span>
433
+
434
+
435
+
436
+
437
+
438
+
439
+
440
+
441
+
442
+ <span class="summary_desc"><div class='inline'>
443
+ <p>Finds the node identified by a given path of keys and returns its value.</p>
444
+ </div></span>
445
+
446
+ </li>
447
+
448
+
449
+ <li class="public ">
450
+ <span class="summary_signature">
451
+
452
+ <a href="#head%3F-instance_method" title="#head? (instance method)">#<strong>head?</strong> &#x21d2; Boolean </a>
453
+
454
+
455
+
456
+ </span>
457
+
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+ <span class="summary_desc"><div class='inline'>
467
+ <p>Tests whether this one is the head of the tree (i.e. has no parent).</p>
468
+ </div></span>
469
+
470
+ </li>
471
+
472
+
473
+ <li class="public ">
474
+ <span class="summary_signature">
475
+
476
+ <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(opts = {}, &amp;block) &#x21d2; PropertyTreeNode </a>
477
+
478
+
479
+
480
+ </span>
481
+
482
+
483
+ <span class="note title constructor">constructor</span>
484
+
485
+
486
+
487
+
488
+
489
+
490
+
491
+
492
+ <span class="summary_desc"><div class='inline'>
493
+ <p>Creates a new node.</p>
494
+ </div></span>
495
+
496
+ </li>
497
+
498
+
499
+ <li class="public ">
500
+ <span class="summary_signature">
501
+
502
+ <a href="#initialize_dup-instance_method" title="#initialize_dup (instance method)">#<strong>initialize_dup</strong>(other) &#x21d2; Object </a>
503
+
504
+
505
+
506
+ </span>
507
+
508
+
509
+
510
+
511
+
512
+
513
+
514
+
515
+
516
+ <span class="summary_desc"><div class='inline'>
517
+ <p>For dup method.</p>
518
+ </div></span>
519
+
520
+ </li>
521
+
522
+
523
+ <li class="public ">
524
+ <span class="summary_signature">
525
+
526
+ <a href="#leaf%3F-instance_method" title="#leaf? (instance method)">#<strong>leaf?</strong> &#x21d2; Boolean </a>
527
+
528
+
529
+
530
+ </span>
531
+
532
+
533
+
534
+
535
+
536
+
537
+
538
+
539
+
540
+ <span class="summary_desc"><div class='inline'>
541
+ <p>Tests whether this one is a leaf of the tree (i.e. has no child).</p>
542
+ </div></span>
543
+
544
+ </li>
545
+
546
+
547
+ <li class="public ">
548
+ <span class="summary_signature">
549
+
550
+ <a href="#node_exists%3F-instance_method" title="#node_exists? (instance method)">#<strong>node_exists?</strong>(path) &#x21d2; Boolean </a>
551
+
552
+
553
+
554
+ </span>
555
+
556
+
557
+
558
+
559
+
560
+
561
+
562
+
563
+
564
+ <span class="summary_desc"><div class='inline'>
565
+ <p>Tests whether the node identified by a given path of keys exists.</p>
566
+ </div></span>
567
+
568
+ </li>
569
+
570
+
571
+ <li class="public ">
572
+ <span class="summary_signature">
573
+
574
+ <a href="#path-instance_method" title="#path (instance method)">#<strong>path</strong> &#x21d2; Array&lt;Object&gt; </a>
575
+
576
+
577
+
578
+ </span>
579
+
580
+
581
+
582
+
583
+
584
+
585
+
586
+
587
+
588
+ <span class="summary_desc"><div class='inline'>
589
+ <p>Builds the path of keys.</p>
590
+ </div></span>
591
+
592
+ </li>
593
+
594
+
595
+ </ul>
596
+
597
+
598
+ <div id="constructor_details" class="method_details_list">
599
+ <h2>Constructor Details</h2>
600
+
601
+ <div class="method_details first">
602
+ <h3 class="signature first" id="initialize-instance_method">
603
+
604
+ #<strong>initialize</strong>(opts = {}, &amp;block) &#x21d2; <tt><span class='object_link'><a href="" title="TermUtils::PropertyTreeNode (class)">PropertyTreeNode</a></span></tt>
605
+
606
+
607
+
608
+
609
+
610
+ </h3><div class="docstring">
611
+ <div class="discussion">
612
+
613
+ <p>Creates a new node. option opts [Object] :key option opts [Object] :value</p>
614
+
615
+
616
+ </div>
617
+ </div>
618
+ <div class="tags">
619
+ <p class="tag_title">Parameters:</p>
620
+ <ul class="param">
621
+
622
+ <li>
623
+
624
+ <span class='name'>opts</span>
625
+
626
+
627
+ <span class='type'>(<tt>Hash&lt;Symbol, Object&gt;</tt>)</span>
628
+
629
+
630
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
631
+
632
+
633
+ </li>
634
+
635
+ </ul>
636
+
637
+
638
+ </div><table class="source_code">
639
+ <tr>
640
+ <td>
641
+ <pre class="lines">
642
+
643
+
644
+ 31
645
+ 32
646
+ 33
647
+ 34
648
+ 35
649
+ 36
650
+ 37</pre>
651
+ </td>
652
+ <td>
653
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 31</span>
654
+
655
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
656
+ <span class='ivar'>@parent_node</span> <span class='op'>=</span> <span class='kw'>nil</span>
657
+ <span class='ivar'>@child_nodes</span> <span class='op'>=</span> <span class='kw'>nil</span>
658
+ <span class='ivar'>@key</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='symbol'>:key</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rparen'>)</span>
659
+ <span class='ivar'>@value</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='symbol'>:value</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rparen'>)</span>
660
+ <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='kw'>self</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_block'>block</span>
661
+ <span class='kw'>end</span></pre>
662
+ </td>
663
+ </tr>
664
+ </table>
665
+ </div>
666
+
667
+ </div>
668
+
669
+ <div id="instance_attr_details" class="attr_details">
670
+ <h2>Instance Attribute Details</h2>
671
+
672
+
673
+ <span id="child_nodes=-instance_method"></span>
674
+ <div class="method_details first">
675
+ <h3 class="signature first" id="child_nodes-instance_method">
676
+
677
+ #<strong>child_nodes</strong> &#x21d2; <tt>Array&lt;<span class='object_link'><a href="" title="TermUtils::PropertyTreeNode (class)">TermUtils::PropertyTreeNode</a></span>&gt;</tt>
678
+
679
+
680
+
681
+
682
+
683
+ </h3><div class="docstring">
684
+ <div class="discussion">
685
+
686
+
687
+ </div>
688
+ </div>
689
+ <div class="tags">
690
+
691
+ <p class="tag_title">Returns:</p>
692
+ <ul class="return">
693
+
694
+ <li>
695
+
696
+
697
+ <span class='type'>(<tt>Array&lt;<span class='object_link'><a href="" title="TermUtils::PropertyTreeNode (class)">TermUtils::PropertyTreeNode</a></span>&gt;</tt>)</span>
698
+
699
+
700
+
701
+ </li>
702
+
703
+ </ul>
704
+
705
+ </div><table class="source_code">
706
+ <tr>
707
+ <td>
708
+ <pre class="lines">
709
+
710
+
711
+ 22
712
+ 23
713
+ 24</pre>
714
+ </td>
715
+ <td>
716
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 22</span>
717
+
718
+ <span class='kw'>def</span> <span class='id identifier rubyid_child_nodes'>child_nodes</span>
719
+ <span class='ivar'>@child_nodes</span>
720
+ <span class='kw'>end</span></pre>
721
+ </td>
722
+ </tr>
723
+ </table>
724
+ </div>
725
+
726
+
727
+ <span id="key=-instance_method"></span>
728
+ <div class="method_details ">
729
+ <h3 class="signature " id="key-instance_method">
730
+
731
+ #<strong>key</strong> &#x21d2; <tt>Object</tt>
732
+
733
+
734
+
735
+
736
+
737
+ </h3><div class="docstring">
738
+ <div class="discussion">
739
+
740
+
741
+ </div>
742
+ </div>
743
+ <div class="tags">
744
+
745
+ <p class="tag_title">Returns:</p>
746
+ <ul class="return">
747
+
748
+ <li>
749
+
750
+
751
+ <span class='type'>(<tt>Object</tt>)</span>
752
+
753
+
754
+
755
+ </li>
756
+
757
+ </ul>
758
+
759
+ </div><table class="source_code">
760
+ <tr>
761
+ <td>
762
+ <pre class="lines">
763
+
764
+
765
+ 24
766
+ 25
767
+ 26</pre>
768
+ </td>
769
+ <td>
770
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 24</span>
771
+
772
+ <span class='kw'>def</span> <span class='id identifier rubyid_key'>key</span>
773
+ <span class='ivar'>@key</span>
774
+ <span class='kw'>end</span></pre>
775
+ </td>
776
+ </tr>
777
+ </table>
778
+ </div>
779
+
780
+
781
+ <span id="parent_node=-instance_method"></span>
782
+ <div class="method_details ">
783
+ <h3 class="signature " id="parent_node-instance_method">
784
+
785
+ #<strong>parent_node</strong> &#x21d2; <tt><span class='object_link'><a href="" title="TermUtils::PropertyTreeNode (class)">TermUtils::PropertyTreeNode</a></span></tt>
786
+
787
+
788
+
789
+
790
+
791
+ </h3><div class="docstring">
792
+ <div class="discussion">
793
+
794
+
795
+ </div>
796
+ </div>
797
+ <div class="tags">
798
+
799
+ <p class="tag_title">Returns:</p>
800
+ <ul class="return">
801
+
802
+ <li>
803
+
804
+
805
+ <span class='type'>(<tt><span class='object_link'><a href="" title="TermUtils::PropertyTreeNode (class)">TermUtils::PropertyTreeNode</a></span></tt>)</span>
806
+
807
+
808
+
809
+ </li>
810
+
811
+ </ul>
812
+
813
+ </div><table class="source_code">
814
+ <tr>
815
+ <td>
816
+ <pre class="lines">
817
+
818
+
819
+ 20
820
+ 21
821
+ 22</pre>
822
+ </td>
823
+ <td>
824
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 20</span>
825
+
826
+ <span class='kw'>def</span> <span class='id identifier rubyid_parent_node'>parent_node</span>
827
+ <span class='ivar'>@parent_node</span>
828
+ <span class='kw'>end</span></pre>
829
+ </td>
830
+ </tr>
831
+ </table>
832
+ </div>
833
+
834
+
835
+ <span id="value=-instance_method"></span>
836
+ <div class="method_details ">
837
+ <h3 class="signature " id="value-instance_method">
838
+
839
+ #<strong>value</strong> &#x21d2; <tt>Object</tt>
840
+
841
+
842
+
843
+
844
+
845
+ </h3><div class="docstring">
846
+ <div class="discussion">
847
+
848
+
849
+ </div>
850
+ </div>
851
+ <div class="tags">
852
+
853
+ <p class="tag_title">Returns:</p>
854
+ <ul class="return">
855
+
856
+ <li>
857
+
858
+
859
+ <span class='type'>(<tt>Object</tt>)</span>
860
+
861
+
862
+
863
+ </li>
864
+
865
+ </ul>
866
+
867
+ </div><table class="source_code">
868
+ <tr>
869
+ <td>
870
+ <pre class="lines">
871
+
872
+
873
+ 26
874
+ 27
875
+ 28</pre>
876
+ </td>
877
+ <td>
878
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 26</span>
879
+
880
+ <span class='kw'>def</span> <span class='id identifier rubyid_value'>value</span>
881
+ <span class='ivar'>@value</span>
882
+ <span class='kw'>end</span></pre>
883
+ </td>
884
+ </tr>
885
+ </table>
886
+ </div>
887
+
888
+ </div>
889
+
890
+
891
+ <div id="instance_method_details" class="method_details_list">
892
+ <h2>Instance Method Details</h2>
893
+
894
+
895
+ <div class="method_details first">
896
+ <h3 class="signature first" id="child_node-instance_method">
897
+
898
+ #<strong>child_node</strong>(key) &#x21d2; <tt><span class='object_link'><a href="" title="TermUtils::PropertyTreeNode (class)">TermUtils::PropertyTreeNode</a></span></tt><sup>?</sup>
899
+
900
+
901
+
902
+
903
+
904
+ </h3><div class="docstring">
905
+ <div class="discussion">
906
+
907
+ <p>Returns the child node identified by a given key.</p>
908
+
909
+
910
+ </div>
911
+ </div>
912
+ <div class="tags">
913
+ <p class="tag_title">Parameters:</p>
914
+ <ul class="param">
915
+
916
+ <li>
917
+
918
+ <span class='name'>key</span>
919
+
920
+
921
+ <span class='type'>(<tt>Object</tt>)</span>
922
+
923
+
924
+
925
+ </li>
926
+
927
+ </ul>
928
+
929
+ <p class="tag_title">Returns:</p>
930
+ <ul class="return">
931
+
932
+ <li>
933
+
934
+
935
+ <span class='type'>(<tt><span class='object_link'><a href="" title="TermUtils::PropertyTreeNode (class)">TermUtils::PropertyTreeNode</a></span></tt>, <tt>nil</tt>)</span>
936
+
937
+
938
+
939
+ </li>
940
+
941
+ </ul>
942
+
943
+ </div><table class="source_code">
944
+ <tr>
945
+ <td>
946
+ <pre class="lines">
947
+
948
+
949
+ 64
950
+ 65
951
+ 66
952
+ 67
953
+ 68</pre>
954
+ </td>
955
+ <td>
956
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 64</span>
957
+
958
+ <span class='kw'>def</span> <span class='id identifier rubyid_child_node'>child_node</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
959
+ <span class='kw'>if</span> <span class='ivar'>@child_nodes</span>
960
+ <span class='ivar'>@child_nodes</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_n'>n</span><span class='op'>|</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span> <span class='op'>==</span> <span class='id identifier rubyid_key'>key</span> <span class='rbrace'>}</span>
961
+ <span class='kw'>end</span>
962
+ <span class='kw'>end</span></pre>
963
+ </td>
964
+ </tr>
965
+ </table>
966
+ </div>
967
+
968
+ <div class="method_details ">
969
+ <h3 class="signature " id="collect_nodes-instance_method">
970
+
971
+ #<strong>collect_nodes</strong>(opts = {}) &#x21d2; <tt>Array&lt;<span class='object_link'><a href="" title="TermUtils::PropertyTreeNode (class)">TermUtils::PropertyTreeNode</a></span>&gt;</tt>
972
+
973
+
974
+
975
+
976
+
977
+ </h3><div class="docstring">
978
+ <div class="discussion">
979
+
980
+ <p>Collects nodes.</p>
981
+
982
+
983
+ </div>
984
+ </div>
985
+ <div class="tags">
986
+ <p class="tag_title">Parameters:</p>
987
+ <ul class="param">
988
+
989
+ <li>
990
+
991
+ <span class='name'>opts</span>
992
+
993
+
994
+ <span class='type'>(<tt>Hash&lt;Symbol,Object&gt;</tt>)</span>
995
+
996
+
997
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
998
+
999
+
1000
+ &mdash;
1001
+ <div class='inline'>
1002
+ <p>`:path`, `:leaf_only`</p>
1003
+ </div>
1004
+
1005
+ </li>
1006
+
1007
+ </ul>
1008
+
1009
+ <p class="tag_title">Returns:</p>
1010
+ <ul class="return">
1011
+
1012
+ <li>
1013
+
1014
+
1015
+ <span class='type'>(<tt>Array&lt;<span class='object_link'><a href="" title="TermUtils::PropertyTreeNode (class)">TermUtils::PropertyTreeNode</a></span>&gt;</tt>)</span>
1016
+
1017
+
1018
+
1019
+ </li>
1020
+
1021
+ </ul>
1022
+
1023
+ </div><table class="source_code">
1024
+ <tr>
1025
+ <td>
1026
+ <pre class="lines">
1027
+
1028
+
1029
+ 137
1030
+ 138
1031
+ 139
1032
+ 140
1033
+ 141
1034
+ 142
1035
+ 143</pre>
1036
+ </td>
1037
+ <td>
1038
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 137</span>
1039
+
1040
+ <span class='kw'>def</span> <span class='id identifier rubyid_collect_nodes'>collect_nodes</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
1041
+ <span class='id identifier rubyid_nodes'>nodes</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1042
+ <span class='id identifier rubyid_each_node'>each_node</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_n'>n</span><span class='op'>|</span>
1043
+ <span class='id identifier rubyid_nodes'>nodes</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_n'>n</span>
1044
+ <span class='kw'>end</span>
1045
+ <span class='id identifier rubyid_nodes'>nodes</span>
1046
+ <span class='kw'>end</span></pre>
1047
+ </td>
1048
+ </tr>
1049
+ </table>
1050
+ </div>
1051
+
1052
+ <div class="method_details ">
1053
+ <h3 class="signature " id="collect_paths-instance_method">
1054
+
1055
+ #<strong>collect_paths</strong>(opts = {}) &#x21d2; <tt>Array&lt;Array&lt;Object&gt;&gt;</tt>
1056
+
1057
+
1058
+
1059
+
1060
+
1061
+ </h3><div class="docstring">
1062
+ <div class="discussion">
1063
+
1064
+ <p>Collects node paths.</p>
1065
+
1066
+
1067
+ </div>
1068
+ </div>
1069
+ <div class="tags">
1070
+ <p class="tag_title">Parameters:</p>
1071
+ <ul class="param">
1072
+
1073
+ <li>
1074
+
1075
+ <span class='name'>opts</span>
1076
+
1077
+
1078
+ <span class='type'>(<tt>Hash&lt;Symbol,Object&gt;</tt>)</span>
1079
+
1080
+
1081
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
1082
+
1083
+
1084
+ &mdash;
1085
+ <div class='inline'>
1086
+ <p>`:path`, `:leaf_only`</p>
1087
+ </div>
1088
+
1089
+ </li>
1090
+
1091
+ </ul>
1092
+
1093
+ <p class="tag_title">Returns:</p>
1094
+ <ul class="return">
1095
+
1096
+ <li>
1097
+
1098
+
1099
+ <span class='type'>(<tt>Array&lt;Array&lt;Object&gt;&gt;</tt>)</span>
1100
+
1101
+
1102
+
1103
+ </li>
1104
+
1105
+ </ul>
1106
+
1107
+ </div><table class="source_code">
1108
+ <tr>
1109
+ <td>
1110
+ <pre class="lines">
1111
+
1112
+
1113
+ 147
1114
+ 148
1115
+ 149
1116
+ 150
1117
+ 151
1118
+ 152
1119
+ 153</pre>
1120
+ </td>
1121
+ <td>
1122
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 147</span>
1123
+
1124
+ <span class='kw'>def</span> <span class='id identifier rubyid_collect_paths'>collect_paths</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
1125
+ <span class='id identifier rubyid_paths'>paths</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1126
+ <span class='id identifier rubyid_each_node'>each_node</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_n'>n</span><span class='op'>|</span>
1127
+ <span class='id identifier rubyid_paths'>paths</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_path'>path</span>
1128
+ <span class='kw'>end</span>
1129
+ <span class='id identifier rubyid_paths'>paths</span>
1130
+ <span class='kw'>end</span></pre>
1131
+ </td>
1132
+ </tr>
1133
+ </table>
1134
+ </div>
1135
+
1136
+ <div class="method_details ">
1137
+ <h3 class="signature " id="collect_values-instance_method">
1138
+
1139
+ #<strong>collect_values</strong>(opts = {}) &#x21d2; <tt>Array&lt;Object&gt;</tt>
1140
+
1141
+
1142
+
1143
+
1144
+
1145
+ </h3><div class="docstring">
1146
+ <div class="discussion">
1147
+
1148
+ <p>Collect node values.</p>
1149
+
1150
+
1151
+ </div>
1152
+ </div>
1153
+ <div class="tags">
1154
+ <p class="tag_title">Parameters:</p>
1155
+ <ul class="param">
1156
+
1157
+ <li>
1158
+
1159
+ <span class='name'>opts</span>
1160
+
1161
+
1162
+ <span class='type'>(<tt>Hash&lt;Symbol,Object&gt;</tt>)</span>
1163
+
1164
+
1165
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
1166
+
1167
+
1168
+ &mdash;
1169
+ <div class='inline'>
1170
+ <p>`:path`, `:leaf_only`</p>
1171
+ </div>
1172
+
1173
+ </li>
1174
+
1175
+ </ul>
1176
+
1177
+ <p class="tag_title">Returns:</p>
1178
+ <ul class="return">
1179
+
1180
+ <li>
1181
+
1182
+
1183
+ <span class='type'>(<tt>Array&lt;Object&gt;</tt>)</span>
1184
+
1185
+
1186
+
1187
+ </li>
1188
+
1189
+ </ul>
1190
+
1191
+ </div><table class="source_code">
1192
+ <tr>
1193
+ <td>
1194
+ <pre class="lines">
1195
+
1196
+
1197
+ 157
1198
+ 158
1199
+ 159
1200
+ 160
1201
+ 161
1202
+ 162
1203
+ 163</pre>
1204
+ </td>
1205
+ <td>
1206
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 157</span>
1207
+
1208
+ <span class='kw'>def</span> <span class='id identifier rubyid_collect_values'>collect_values</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
1209
+ <span class='id identifier rubyid_vals'>vals</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1210
+ <span class='id identifier rubyid_each_node'>each_node</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_n'>n</span><span class='op'>|</span>
1211
+ <span class='id identifier rubyid_vals'>vals</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span> <span class='kw'>if</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span>
1212
+ <span class='kw'>end</span>
1213
+ <span class='id identifier rubyid_vals'>vals</span>
1214
+ <span class='kw'>end</span></pre>
1215
+ </td>
1216
+ </tr>
1217
+ </table>
1218
+ </div>
1219
+
1220
+ <div class="method_details ">
1221
+ <h3 class="signature " id="define_node-instance_method">
1222
+
1223
+ #<strong>define_node</strong>(opts = {}, &amp;block) &#x21d2; <tt><span class='object_link'><a href="" title="TermUtils::PropertyTreeNode (class)">TermUtils::PropertyTreeNode</a></span></tt>
1224
+
1225
+
1226
+
1227
+
1228
+
1229
+ </h3><div class="docstring">
1230
+ <div class="discussion">
1231
+
1232
+ <p>Creates a new node and adds it as a child.</p>
1233
+
1234
+
1235
+ </div>
1236
+ </div>
1237
+ <div class="tags">
1238
+ <p class="tag_title">Parameters:</p>
1239
+ <ul class="param">
1240
+
1241
+ <li>
1242
+
1243
+ <span class='name'>opts</span>
1244
+
1245
+
1246
+ <span class='type'>(<tt>Hash&lt;Symbol,Object&gt;</tt>)</span>
1247
+
1248
+
1249
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
1250
+
1251
+
1252
+ &mdash;
1253
+ <div class='inline'>
1254
+ <p>key value</p>
1255
+ </div>
1256
+
1257
+ </li>
1258
+
1259
+ </ul>
1260
+
1261
+ <p class="tag_title">Returns:</p>
1262
+ <ul class="return">
1263
+
1264
+ <li>
1265
+
1266
+
1267
+ <span class='type'>(<tt><span class='object_link'><a href="" title="TermUtils::PropertyTreeNode (class)">TermUtils::PropertyTreeNode</a></span></tt>)</span>
1268
+
1269
+
1270
+
1271
+ </li>
1272
+
1273
+ </ul>
1274
+
1275
+ </div><table class="source_code">
1276
+ <tr>
1277
+ <td>
1278
+ <pre class="lines">
1279
+
1280
+
1281
+ 72
1282
+ 73
1283
+ 74
1284
+ 75
1285
+ 76
1286
+ 77
1287
+ 78
1288
+ 79</pre>
1289
+ </td>
1290
+ <td>
1291
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 72</span>
1292
+
1293
+ <span class='kw'>def</span> <span class='id identifier rubyid_define_node'>define_node</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1294
+ <span class='id identifier rubyid_new_node'>new_node</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../TermUtils.html" title="TermUtils (module)">TermUtils</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="" title="TermUtils::PropertyTreeNode (class)">PropertyTreeNode</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="TermUtils::PropertyTreeNode#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
1295
+ <span class='id identifier rubyid_new_node'>new_node</span><span class='period'>.</span><span class='id identifier rubyid_parent_node'>parent_node</span> <span class='op'>=</span> <span class='kw'>self</span>
1296
+ <span class='ivar'>@child_nodes</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span> <span class='kw'>unless</span> <span class='ivar'>@child_nodes</span>
1297
+ <span class='ivar'>@child_nodes</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_new_node'>new_node</span>
1298
+ <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_new_node'>new_node</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_block'>block</span>
1299
+ <span class='id identifier rubyid_new_node'>new_node</span>
1300
+ <span class='kw'>end</span></pre>
1301
+ </td>
1302
+ </tr>
1303
+ </table>
1304
+ </div>
1305
+
1306
+ <div class="method_details ">
1307
+ <h3 class="signature " id="each_node-instance_method">
1308
+
1309
+ #<strong>each_node</strong>(opts = {}, &amp;block) &#x21d2; <tt>nil</tt>
1310
+
1311
+
1312
+
1313
+
1314
+
1315
+ </h3><div class="docstring">
1316
+ <div class="discussion">
1317
+
1318
+ <p>Iterates over every node.</p>
1319
+
1320
+
1321
+ </div>
1322
+ </div>
1323
+ <div class="tags">
1324
+ <p class="tag_title">Parameters:</p>
1325
+ <ul class="param">
1326
+
1327
+ <li>
1328
+
1329
+ <span class='name'>opts</span>
1330
+
1331
+
1332
+ <span class='type'>(<tt>Hash&lt;Symbol,Object&gt;</tt>)</span>
1333
+
1334
+
1335
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
1336
+
1337
+
1338
+ &mdash;
1339
+ <div class='inline'>
1340
+ <p>`:path`, `:leaf_only`</p>
1341
+ </div>
1342
+
1343
+ </li>
1344
+
1345
+ </ul>
1346
+
1347
+ <p class="tag_title">Returns:</p>
1348
+ <ul class="return">
1349
+
1350
+ <li>
1351
+
1352
+
1353
+ <span class='type'>(<tt>nil</tt>)</span>
1354
+
1355
+
1356
+
1357
+ </li>
1358
+
1359
+ </ul>
1360
+
1361
+ </div><table class="source_code">
1362
+ <tr>
1363
+ <td>
1364
+ <pre class="lines">
1365
+
1366
+
1367
+ 90
1368
+ 91
1369
+ 92
1370
+ 93
1371
+ 94
1372
+ 95
1373
+ 96
1374
+ 97
1375
+ 98
1376
+ 99
1377
+ 100
1378
+ 101
1379
+ 102
1380
+ 103
1381
+ 104
1382
+ 105
1383
+ 106
1384
+ 107
1385
+ 108
1386
+ 109
1387
+ 110
1388
+ 111
1389
+ 112
1390
+ 113
1391
+ 114
1392
+ 115
1393
+ 116
1394
+ 117
1395
+ 118
1396
+ 119
1397
+ 120
1398
+ 121
1399
+ 122
1400
+ 123
1401
+ 124
1402
+ 125
1403
+ 126
1404
+ 127
1405
+ 128
1406
+ 129
1407
+ 130
1408
+ 131
1409
+ 132
1410
+ 133</pre>
1411
+ </td>
1412
+ <td>
1413
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 90</span>
1414
+
1415
+ <span class='kw'>def</span> <span class='id identifier rubyid_each_node'>each_node</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1416
+ <span class='id identifier rubyid_rpath'>rpath</span> <span class='op'>=</span> <span class='kw'>nil</span>
1417
+ <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span> <span class='symbol'>:path</span>
1418
+ <span class='id identifier rubyid_rpath'>rpath</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_dup'>dup</span>
1419
+ <span class='kw'>end</span>
1420
+ <span class='id identifier rubyid_dive'>dive</span> <span class='op'>=</span> <span class='kw'>true</span>
1421
+ <span class='kw'>if</span> <span class='ivar'>@key</span>
1422
+ <span class='id identifier rubyid_hide'>hide</span> <span class='op'>=</span> <span class='kw'>false</span>
1423
+ <span class='kw'>if</span> <span class='id identifier rubyid_rpath'>rpath</span>
1424
+ <span class='kw'>if</span> <span class='id identifier rubyid_rpath'>rpath</span><span class='period'>.</span><span class='id identifier rubyid_shift'>shift</span> <span class='op'>==</span> <span class='ivar'>@key</span>
1425
+ <span class='kw'>unless</span> <span class='id identifier rubyid_rpath'>rpath</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
1426
+ <span class='id identifier rubyid_hide'>hide</span> <span class='op'>=</span> <span class='kw'>true</span>
1427
+ <span class='kw'>end</span>
1428
+ <span class='kw'>else</span>
1429
+ <span class='id identifier rubyid_dive'>dive</span> <span class='op'>=</span> <span class='kw'>false</span>
1430
+ <span class='id identifier rubyid_hide'>hide</span> <span class='op'>=</span> <span class='kw'>true</span>
1431
+ <span class='kw'>end</span>
1432
+ <span class='kw'>end</span>
1433
+ <span class='kw'>unless</span> <span class='id identifier rubyid_hide'>hide</span> <span class='kw'>or</span> <span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:leaf_only</span><span class='rbracket'>]</span> <span class='kw'>and</span> <span class='ivar'>@child_nodes</span><span class='rparen'>)</span>
1434
+ <span class='kw'>if</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span> <span class='symbol'>:block</span>
1435
+ <span class='id identifier rubyid_opts'>opts</span><span class='lbracket'>[</span><span class='symbol'>:block</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span>
1436
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_block'>block</span>
1437
+ <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='kw'>self</span><span class='rparen'>)</span>
1438
+ <span class='kw'>end</span>
1439
+ <span class='kw'>end</span>
1440
+ <span class='kw'>end</span> <span class='comment'># if @key
1441
+ </span> <span class='kw'>if</span> <span class='id identifier rubyid_dive'>dive</span> <span class='kw'>and</span> <span class='ivar'>@child_nodes</span>
1442
+ <span class='id identifier rubyid_ropts'>ropts</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_dup'>dup</span>
1443
+ <span class='kw'>if</span> <span class='id identifier rubyid_rpath'>rpath</span>
1444
+ <span class='kw'>if</span> <span class='id identifier rubyid_rpath'>rpath</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
1445
+ <span class='id identifier rubyid_ropts'>ropts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span> <span class='symbol'>:path</span>
1446
+ <span class='kw'>else</span>
1447
+ <span class='id identifier rubyid_ropts'>ropts</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_rpath'>rpath</span>
1448
+ <span class='kw'>end</span>
1449
+ <span class='kw'>end</span>
1450
+ <span class='kw'>if</span> <span class='id identifier rubyid_block'>block</span>
1451
+ <span class='id identifier rubyid_ropts'>ropts</span><span class='lbracket'>[</span><span class='symbol'>:block</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_block'>block</span>
1452
+ <span class='kw'>end</span>
1453
+ <span class='ivar'>@child_nodes</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_n'>n</span><span class='op'>|</span>
1454
+ <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_each_node'>each_node</span><span class='lparen'>(</span><span class='id identifier rubyid_ropts'>ropts</span><span class='rparen'>)</span>
1455
+ <span class='kw'>end</span>
1456
+ <span class='kw'>end</span>
1457
+ <span class='kw'>nil</span>
1458
+ <span class='kw'>end</span></pre>
1459
+ </td>
1460
+ </tr>
1461
+ </table>
1462
+ </div>
1463
+
1464
+ <div class="method_details ">
1465
+ <h3 class="signature " id="eval_child_count-instance_method">
1466
+
1467
+ #<strong>eval_child_count</strong>(path) &#x21d2; <tt>Integer</tt>
1468
+
1469
+
1470
+
1471
+
1472
+
1473
+ </h3><div class="docstring">
1474
+ <div class="discussion">
1475
+
1476
+ <p>Evaluates the total number of nodes in the tree represented by this one.</p>
1477
+
1478
+
1479
+ </div>
1480
+ </div>
1481
+ <div class="tags">
1482
+ <p class="tag_title">Parameters:</p>
1483
+ <ul class="param">
1484
+
1485
+ <li>
1486
+
1487
+ <span class='name'>path</span>
1488
+
1489
+
1490
+ <span class='type'>(<tt>Array&lt;Object&gt;</tt>)</span>
1491
+
1492
+
1493
+
1494
+ </li>
1495
+
1496
+ </ul>
1497
+
1498
+ <p class="tag_title">Returns:</p>
1499
+ <ul class="return">
1500
+
1501
+ <li>
1502
+
1503
+
1504
+ <span class='type'>(<tt>Integer</tt>)</span>
1505
+
1506
+
1507
+
1508
+ </li>
1509
+
1510
+ </ul>
1511
+
1512
+ </div><table class="source_code">
1513
+ <tr>
1514
+ <td>
1515
+ <pre class="lines">
1516
+
1517
+
1518
+ 184
1519
+ 185
1520
+ 186
1521
+ 187
1522
+ 188
1523
+ 189</pre>
1524
+ </td>
1525
+ <td>
1526
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 184</span>
1527
+
1528
+ <span class='kw'>def</span> <span class='id identifier rubyid_eval_child_count'>eval_child_count</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
1529
+ <span class='id identifier rubyid_node'>node</span> <span class='op'>=</span> <span class='id identifier rubyid_find_node'>find_node</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
1530
+ <span class='kw'>if</span> <span class='id identifier rubyid_node'>node</span>
1531
+ <span class='id identifier rubyid_node'>node</span><span class='period'>.</span><span class='id identifier rubyid_child_nodes'>child_nodes</span> <span class='op'>?</span> <span class='id identifier rubyid_node'>node</span><span class='period'>.</span><span class='id identifier rubyid_child_nodes'>child_nodes</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>:</span> <span class='int'>0</span>
1532
+ <span class='kw'>end</span>
1533
+ <span class='kw'>end</span></pre>
1534
+ </td>
1535
+ </tr>
1536
+ </table>
1537
+ </div>
1538
+
1539
+ <div class="method_details ">
1540
+ <h3 class="signature " id="find_node-instance_method">
1541
+
1542
+ #<strong>find_node</strong>(path) &#x21d2; <tt><span class='object_link'><a href="" title="TermUtils::PropertyTreeNode (class)">TermUtils::PropertyTreeNode</a></span></tt>
1543
+
1544
+
1545
+
1546
+
1547
+
1548
+ </h3><div class="docstring">
1549
+ <div class="discussion">
1550
+
1551
+ <p>Finds the node identified by a given path of keys.</p>
1552
+
1553
+
1554
+ </div>
1555
+ </div>
1556
+ <div class="tags">
1557
+ <p class="tag_title">Parameters:</p>
1558
+ <ul class="param">
1559
+
1560
+ <li>
1561
+
1562
+ <span class='name'>path</span>
1563
+
1564
+
1565
+ <span class='type'>(<tt>Array&lt;Object&gt;</tt>)</span>
1566
+
1567
+
1568
+
1569
+ </li>
1570
+
1571
+ </ul>
1572
+
1573
+ <p class="tag_title">Returns:</p>
1574
+ <ul class="return">
1575
+
1576
+ <li>
1577
+
1578
+
1579
+ <span class='type'>(<tt><span class='object_link'><a href="" title="TermUtils::PropertyTreeNode (class)">TermUtils::PropertyTreeNode</a></span></tt>)</span>
1580
+
1581
+
1582
+
1583
+ </li>
1584
+
1585
+ </ul>
1586
+
1587
+ </div><table class="source_code">
1588
+ <tr>
1589
+ <td>
1590
+ <pre class="lines">
1591
+
1592
+
1593
+ 167
1594
+ 168
1595
+ 169
1596
+ 170
1597
+ 171
1598
+ 172
1599
+ 173
1600
+ 174</pre>
1601
+ </td>
1602
+ <td>
1603
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 167</span>
1604
+
1605
+ <span class='kw'>def</span> <span class='id identifier rubyid_find_node'>find_node</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
1606
+ <span class='id identifier rubyid_catch'>catch</span> <span class='symbol'>:found</span> <span class='kw'>do</span>
1607
+ <span class='id identifier rubyid_each_node'>each_node</span><span class='lparen'>(</span><span class='symbol'>:path</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_n'>n</span><span class='op'>|</span>
1608
+ <span class='id identifier rubyid_throw'>throw</span> <span class='symbol'>:found</span><span class='comma'>,</span> <span class='id identifier rubyid_n'>n</span>
1609
+ <span class='kw'>end</span>
1610
+ <span class='kw'>nil</span>
1611
+ <span class='kw'>end</span>
1612
+ <span class='kw'>end</span></pre>
1613
+ </td>
1614
+ </tr>
1615
+ </table>
1616
+ </div>
1617
+
1618
+ <div class="method_details ">
1619
+ <h3 class="signature " id="find_node_value-instance_method">
1620
+
1621
+ #<strong>find_node_value</strong>(path) &#x21d2; <tt>Object</tt>
1622
+
1623
+
1624
+
1625
+
1626
+
1627
+ </h3><div class="docstring">
1628
+ <div class="discussion">
1629
+
1630
+ <p>Finds the node identified by a given path of keys and returns its value.</p>
1631
+
1632
+
1633
+ </div>
1634
+ </div>
1635
+ <div class="tags">
1636
+ <p class="tag_title">Parameters:</p>
1637
+ <ul class="param">
1638
+
1639
+ <li>
1640
+
1641
+ <span class='name'>path</span>
1642
+
1643
+
1644
+ <span class='type'>(<tt>Array&lt;Object&gt;</tt>)</span>
1645
+
1646
+
1647
+
1648
+ </li>
1649
+
1650
+ </ul>
1651
+
1652
+ <p class="tag_title">Returns:</p>
1653
+ <ul class="return">
1654
+
1655
+ <li>
1656
+
1657
+
1658
+ <span class='type'>(<tt>Object</tt>)</span>
1659
+
1660
+
1661
+
1662
+ </li>
1663
+
1664
+ </ul>
1665
+
1666
+ </div><table class="source_code">
1667
+ <tr>
1668
+ <td>
1669
+ <pre class="lines">
1670
+
1671
+
1672
+ 193
1673
+ 194
1674
+ 195
1675
+ 196
1676
+ 197
1677
+ 198</pre>
1678
+ </td>
1679
+ <td>
1680
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 193</span>
1681
+
1682
+ <span class='kw'>def</span> <span class='id identifier rubyid_find_node_value'>find_node_value</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
1683
+ <span class='id identifier rubyid_node'>node</span> <span class='op'>=</span> <span class='id identifier rubyid_find_node'>find_node</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
1684
+ <span class='kw'>if</span> <span class='id identifier rubyid_node'>node</span>
1685
+ <span class='id identifier rubyid_node'>node</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span>
1686
+ <span class='kw'>end</span>
1687
+ <span class='kw'>end</span></pre>
1688
+ </td>
1689
+ </tr>
1690
+ </table>
1691
+ </div>
1692
+
1693
+ <div class="method_details ">
1694
+ <h3 class="signature " id="head?-instance_method">
1695
+
1696
+ #<strong>head?</strong> &#x21d2; <tt>Boolean</tt>
1697
+
1698
+
1699
+
1700
+
1701
+
1702
+ </h3><div class="docstring">
1703
+ <div class="discussion">
1704
+
1705
+ <p>Tests whether this one is the head of the tree (i.e. has no parent).</p>
1706
+
1707
+
1708
+ </div>
1709
+ </div>
1710
+ <div class="tags">
1711
+
1712
+ <p class="tag_title">Returns:</p>
1713
+ <ul class="return">
1714
+
1715
+ <li>
1716
+
1717
+
1718
+ <span class='type'>(<tt>Boolean</tt>)</span>
1719
+
1720
+
1721
+
1722
+ </li>
1723
+
1724
+ </ul>
1725
+
1726
+ </div><table class="source_code">
1727
+ <tr>
1728
+ <td>
1729
+ <pre class="lines">
1730
+
1731
+
1732
+ 53
1733
+ 54
1734
+ 55</pre>
1735
+ </td>
1736
+ <td>
1737
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 53</span>
1738
+
1739
+ <span class='kw'>def</span> <span class='id identifier rubyid_head?'>head?</span>
1740
+ <span class='ivar'>@parent_node</span> <span class='op'>==</span> <span class='kw'>nil</span>
1741
+ <span class='kw'>end</span></pre>
1742
+ </td>
1743
+ </tr>
1744
+ </table>
1745
+ </div>
1746
+
1747
+ <div class="method_details ">
1748
+ <h3 class="signature " id="initialize_dup-instance_method">
1749
+
1750
+ #<strong>initialize_dup</strong>(other) &#x21d2; <tt>Object</tt>
1751
+
1752
+
1753
+
1754
+
1755
+
1756
+ </h3><div class="docstring">
1757
+ <div class="discussion">
1758
+
1759
+ <p>For dup method.</p>
1760
+
1761
+
1762
+ </div>
1763
+ </div>
1764
+ <div class="tags">
1765
+
1766
+
1767
+ </div><table class="source_code">
1768
+ <tr>
1769
+ <td>
1770
+ <pre class="lines">
1771
+
1772
+
1773
+ 39
1774
+ 40
1775
+ 41
1776
+ 42
1777
+ 43
1778
+ 44
1779
+ 45
1780
+ 46
1781
+ 47
1782
+ 48
1783
+ 49
1784
+ 50</pre>
1785
+ </td>
1786
+ <td>
1787
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 39</span>
1788
+
1789
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize_dup'>initialize_dup</span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='rparen'>)</span>
1790
+ <span class='ivar'>@parent_node</span> <span class='op'>=</span> <span class='kw'>nil</span>
1791
+ <span class='kw'>if</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_child_nodes'>child_nodes</span>
1792
+ <span class='ivar'>@child_nodes</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1793
+ <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_child_nodes'>child_nodes</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_n'>n</span><span class='op'>|</span>
1794
+ <span class='id identifier rubyid_new_node'>new_node</span> <span class='op'>=</span> <span class='id identifier rubyid_n'>n</span><span class='period'>.</span><span class='id identifier rubyid_dup'>dup</span>
1795
+ <span class='id identifier rubyid_new_node'>new_node</span><span class='period'>.</span><span class='id identifier rubyid_parent_node'>parent_node</span> <span class='op'>=</span> <span class='kw'>self</span>
1796
+ <span class='ivar'>@child_nodes</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_new_node'>new_node</span>
1797
+ <span class='kw'>end</span>
1798
+ <span class='kw'>end</span>
1799
+ <span class='kw'>super</span>
1800
+ <span class='kw'>end</span></pre>
1801
+ </td>
1802
+ </tr>
1803
+ </table>
1804
+ </div>
1805
+
1806
+ <div class="method_details ">
1807
+ <h3 class="signature " id="leaf?-instance_method">
1808
+
1809
+ #<strong>leaf?</strong> &#x21d2; <tt>Boolean</tt>
1810
+
1811
+
1812
+
1813
+
1814
+
1815
+ </h3><div class="docstring">
1816
+ <div class="discussion">
1817
+
1818
+ <p>Tests whether this one is a leaf of the tree (i.e. has no child).</p>
1819
+
1820
+
1821
+ </div>
1822
+ </div>
1823
+ <div class="tags">
1824
+
1825
+ <p class="tag_title">Returns:</p>
1826
+ <ul class="return">
1827
+
1828
+ <li>
1829
+
1830
+
1831
+ <span class='type'>(<tt>Boolean</tt>)</span>
1832
+
1833
+
1834
+
1835
+ </li>
1836
+
1837
+ </ul>
1838
+
1839
+ </div><table class="source_code">
1840
+ <tr>
1841
+ <td>
1842
+ <pre class="lines">
1843
+
1844
+
1845
+ 58
1846
+ 59
1847
+ 60</pre>
1848
+ </td>
1849
+ <td>
1850
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 58</span>
1851
+
1852
+ <span class='kw'>def</span> <span class='id identifier rubyid_leaf?'>leaf?</span>
1853
+ <span class='ivar'>@child_nodes</span> <span class='op'>==</span> <span class='kw'>nil</span>
1854
+ <span class='kw'>end</span></pre>
1855
+ </td>
1856
+ </tr>
1857
+ </table>
1858
+ </div>
1859
+
1860
+ <div class="method_details ">
1861
+ <h3 class="signature " id="node_exists?-instance_method">
1862
+
1863
+ #<strong>node_exists?</strong>(path) &#x21d2; <tt>Boolean</tt>
1864
+
1865
+
1866
+
1867
+
1868
+
1869
+ </h3><div class="docstring">
1870
+ <div class="discussion">
1871
+
1872
+ <p>Tests whether the node identified by a given path of keys exists.</p>
1873
+
1874
+
1875
+ </div>
1876
+ </div>
1877
+ <div class="tags">
1878
+ <p class="tag_title">Parameters:</p>
1879
+ <ul class="param">
1880
+
1881
+ <li>
1882
+
1883
+ <span class='name'>path</span>
1884
+
1885
+
1886
+ <span class='type'>(<tt>Array&lt;Object&gt;</tt>)</span>
1887
+
1888
+
1889
+
1890
+ </li>
1891
+
1892
+ </ul>
1893
+
1894
+ <p class="tag_title">Returns:</p>
1895
+ <ul class="return">
1896
+
1897
+ <li>
1898
+
1899
+
1900
+ <span class='type'>(<tt>Boolean</tt>)</span>
1901
+
1902
+
1903
+
1904
+ </li>
1905
+
1906
+ </ul>
1907
+
1908
+ </div><table class="source_code">
1909
+ <tr>
1910
+ <td>
1911
+ <pre class="lines">
1912
+
1913
+
1914
+ 178
1915
+ 179
1916
+ 180</pre>
1917
+ </td>
1918
+ <td>
1919
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 178</span>
1920
+
1921
+ <span class='kw'>def</span> <span class='id identifier rubyid_node_exists?'>node_exists?</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
1922
+ <span class='id identifier rubyid_find_node'>find_node</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span> <span class='op'>!=</span> <span class='kw'>nil</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="path-instance_method">
1931
+
1932
+ #<strong>path</strong> &#x21d2; <tt>Array&lt;Object&gt;</tt>
1933
+
1934
+
1935
+
1936
+
1937
+
1938
+ </h3><div class="docstring">
1939
+ <div class="discussion">
1940
+
1941
+ <p>Builds the path of keys.</p>
1942
+
1943
+
1944
+ </div>
1945
+ </div>
1946
+ <div class="tags">
1947
+
1948
+ <p class="tag_title">Returns:</p>
1949
+ <ul class="return">
1950
+
1951
+ <li>
1952
+
1953
+
1954
+ <span class='type'>(<tt>Array&lt;Object&gt;</tt>)</span>
1955
+
1956
+
1957
+
1958
+ </li>
1959
+
1960
+ </ul>
1961
+
1962
+ </div><table class="source_code">
1963
+ <tr>
1964
+ <td>
1965
+ <pre class="lines">
1966
+
1967
+
1968
+ 82
1969
+ 83
1970
+ 84
1971
+ 85
1972
+ 86</pre>
1973
+ </td>
1974
+ <td>
1975
+ <pre class="code"><span class="info file"># File 'lib/term_utils/property_tree_node.rb', line 82</span>
1976
+
1977
+ <span class='kw'>def</span> <span class='id identifier rubyid_path'>path</span>
1978
+ <span class='id identifier rubyid_p'>p</span> <span class='op'>=</span> <span class='ivar'>@parent_node</span> <span class='op'>?</span> <span class='ivar'>@parent_node</span><span class='period'>.</span><span class='id identifier rubyid_path'>path</span> <span class='op'>:</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1979
+ <span class='id identifier rubyid_p'>p</span> <span class='op'>&lt;&lt;</span> <span class='ivar'>@key</span> <span class='kw'>if</span> <span class='ivar'>@key</span>
1980
+ <span class='id identifier rubyid_p'>p</span>
1981
+ <span class='kw'>end</span></pre>
1982
+ </td>
1983
+ </tr>
1984
+ </table>
1985
+ </div>
1986
+
1987
+ </div>
1988
+
1989
+ </div>
1990
+
1991
+ <div id="footer">
1992
+ Generated on Sun Nov 10 18:36:20 2019 by
1993
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1994
+ 0.9.20 (ruby-2.6.5).
1995
+ </div>
1996
+
1997
+ </div>
1998
+ </body>
1999
+ </html>