xjson 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: d30069a7d02308be08e5f01c71698903baed37be4c3de6467974e7687f059717
4
+ data.tar.gz: afecc610ac0b4d48be974fc860f43a52f79b9c899f39ce434e4929661ac60b3e
5
+ SHA512:
6
+ metadata.gz: c28e41c8e1d538576b93488fd79e9e9458a61a07b0846fcd6e9bf2cee00b5bbc3fcb2a2455c392979c70c21bf929513344509b487da14be2e01bcec2d7fa699b
7
+ data.tar.gz: 145d79b07ca81a97aa7cbead7383691f4297f23df66224b3fdce10fec7cca41f1e0491567128c9a498c1b9e81f4ce1c5ac5141275d78ec02d44d1d48f71cbba2
data/CHANGELOG.rdoc ADDED
@@ -0,0 +1,6 @@
1
+ = Version history
2
+
3
+ [0.0.2] Documentation update.
4
+ Improved test coverage.
5
+
6
+ [0.0.1] Initial version.
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2021 tero.isannainen@gmail.com
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,3 @@
1
+ = XJSON
2
+
3
+ {Xjson} is described in "markdown/README.md".
data/doc/Xjson.html ADDED
@@ -0,0 +1,1669 @@
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: Xjson
8
+
9
+ &mdash; Documentation by YARD 0.9.25
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" />
16
+
17
+ <script type="text/javascript">
18
+ pathId = "Xjson";
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 (X)</a> &raquo;
40
+
41
+
42
+ <span class="title">Xjson</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: Xjson
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">Xjson</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/xjson.rb<span class="defines">,<br />
98
+ lib/version.rb</span>
99
+ </dd>
100
+ </dl>
101
+
102
+ </div>
103
+
104
+ <h2>Overview</h2><div class="docstring">
105
+ <div class="discussion">
106
+
107
+ <p>require &#39;byebug&#39;</p>
108
+
109
+
110
+ </div>
111
+ </div>
112
+ <div class="tags">
113
+
114
+
115
+ </div><h2>Defined Under Namespace</h2>
116
+ <p class="children">
117
+
118
+
119
+
120
+
121
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Xjson/XjsonIncludeError.html" title="Xjson::XjsonIncludeError (class)">XjsonIncludeError</a></span>, <span class='object_link'><a href="Xjson/XjsonReferenceError.html" title="Xjson::XjsonReferenceError (class)">XjsonReferenceError</a></span>
122
+
123
+
124
+ </p>
125
+
126
+
127
+ <h2>
128
+ Constant Summary
129
+ <small><a href="#" class="constants_summary_toggle">collapse</a></small>
130
+ </h2>
131
+
132
+ <dl class="constants">
133
+
134
+ <dt id="VERSION-constant" class="">VERSION =
135
+
136
+ </dt>
137
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0.0.2</span><span class='tstring_end'>&quot;</span></span></pre></dd>
138
+
139
+ </dl>
140
+
141
+
142
+
143
+
144
+
145
+ <h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
146
+ <ul class="summary">
147
+
148
+ <li class="public ">
149
+ <span class="summary_signature">
150
+
151
+ <a href="#data-instance_method" title="#data (instance method)">#<strong>data</strong> &#x21d2; Object </a>
152
+
153
+
154
+
155
+ </span>
156
+
157
+
158
+
159
+
160
+ <span class="note title readonly">readonly</span>
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+ <span class="summary_desc"><div class='inline'>
171
+ <p>Returns the value of attribute data.</p>
172
+ </div></span>
173
+
174
+ </li>
175
+
176
+
177
+ <li class="public ">
178
+ <span class="summary_signature">
179
+
180
+ <a href="#dir-instance_method" title="#dir (instance method)">#<strong>dir</strong> &#x21d2; Object </a>
181
+
182
+
183
+
184
+ </span>
185
+
186
+
187
+
188
+
189
+ <span class="note title readonly">readonly</span>
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+ <span class="summary_desc"><div class='inline'>
200
+ <p>Returns the value of attribute dir.</p>
201
+ </div></span>
202
+
203
+ </li>
204
+
205
+
206
+ <li class="public ">
207
+ <span class="summary_signature">
208
+
209
+ <a href="#ext_data-instance_method" title="#ext_data (instance method)">#<strong>ext_data</strong> &#x21d2; Object </a>
210
+
211
+
212
+
213
+ </span>
214
+
215
+
216
+
217
+
218
+ <span class="note title readonly">readonly</span>
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+ <span class="summary_desc"><div class='inline'>
229
+ <p>Returns the value of attribute ext_data.</p>
230
+ </div></span>
231
+
232
+ </li>
233
+
234
+
235
+ </ul>
236
+
237
+
238
+
239
+
240
+
241
+ <h2>
242
+ Class Method Summary
243
+ <small><a href="#" class="summary_toggle">collapse</a></small>
244
+ </h2>
245
+
246
+ <ul class="summary">
247
+
248
+ <li class="public ">
249
+ <span class="summary_signature">
250
+
251
+ <a href="#load-class_method" title="load (class method)">.<strong>load</strong>(filename) &#x21d2; Object </a>
252
+
253
+
254
+
255
+ </span>
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+ <span class="summary_desc"><div class='inline'></div></span>
266
+
267
+ </li>
268
+
269
+
270
+ <li class="public ">
271
+ <span class="summary_signature">
272
+
273
+ <a href="#version-class_method" title="version (class method)">.<strong>version</strong> &#x21d2; Object </a>
274
+
275
+
276
+
277
+ </span>
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+ <span class="summary_desc"><div class='inline'></div></span>
288
+
289
+ </li>
290
+
291
+
292
+ </ul>
293
+
294
+ <h2>
295
+ Instance Method Summary
296
+ <small><a href="#" class="summary_toggle">collapse</a></small>
297
+ </h2>
298
+
299
+ <ul class="summary">
300
+
301
+ <li class="public ">
302
+ <span class="summary_signature">
303
+
304
+ <a href="#dump-instance_method" title="#dump (instance method)">#<strong>dump</strong>(filename) &#x21d2; Object </a>
305
+
306
+
307
+
308
+ </span>
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+ <span class="summary_desc"><div class='inline'>
319
+ <p>Dump JSON data as marshal.</p>
320
+ </div></span>
321
+
322
+ </li>
323
+
324
+
325
+ <li class="public ">
326
+ <span class="summary_signature">
327
+
328
+ <a href="#expand-instance_method" title="#expand (instance method)">#<strong>expand</strong>(data) &#x21d2; Object </a>
329
+
330
+
331
+
332
+ </span>
333
+
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+
342
+ <span class="summary_desc"><div class='inline'>
343
+ <p>Expand json recursively.</p>
344
+ </div></span>
345
+
346
+ </li>
347
+
348
+
349
+ <li class="public ">
350
+ <span class="summary_signature">
351
+
352
+ <a href="#find_in_array_of_hash-instance_method" title="#find_in_array_of_hash (instance method)">#<strong>find_in_array_of_hash</strong>(scope, key, value) &#x21d2; Object </a>
353
+
354
+
355
+
356
+ </span>
357
+
358
+
359
+
360
+
361
+
362
+
363
+
364
+
365
+
366
+ <span class="summary_desc"><div class='inline'></div></span>
367
+
368
+ </li>
369
+
370
+
371
+ <li class="public ">
372
+ <span class="summary_signature">
373
+
374
+ <a href="#flatten-instance_method" title="#flatten (instance method)">#<strong>flatten</strong>(data) &#x21d2; Object </a>
375
+
376
+
377
+
378
+ </span>
379
+
380
+
381
+
382
+
383
+
384
+
385
+
386
+
387
+
388
+ <span class="summary_desc"><div class='inline'>
389
+ <p>Flatten by one level within array.</p>
390
+ </div></span>
391
+
392
+ </li>
393
+
394
+
395
+ <li class="public ">
396
+ <span class="summary_signature">
397
+
398
+ <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(xjson_file) &#x21d2; Xjson </a>
399
+
400
+
401
+
402
+ </span>
403
+
404
+
405
+ <span class="note title constructor">constructor</span>
406
+
407
+
408
+
409
+
410
+
411
+
412
+
413
+
414
+ <span class="summary_desc"><div class='inline'>
415
+ <p>A new instance of Xjson.</p>
416
+ </div></span>
417
+
418
+ </li>
419
+
420
+
421
+ <li class="public ">
422
+ <span class="summary_signature">
423
+
424
+ <a href="#override-instance_method" title="#override (instance method)">#<strong>override</strong>(data, exp, overwrite = false) &#x21d2; Object </a>
425
+
426
+
427
+
428
+ </span>
429
+
430
+
431
+
432
+
433
+
434
+
435
+
436
+
437
+
438
+ <span class="summary_desc"><div class='inline'></div></span>
439
+
440
+ </li>
441
+
442
+
443
+ <li class="public ">
444
+ <span class="summary_signature">
445
+
446
+ <a href="#override_apply-instance_method" title="#override_apply (instance method)">#<strong>override_apply</strong>(desc, overwrite = false) &#x21d2; Object </a>
447
+
448
+
449
+
450
+ </span>
451
+
452
+
453
+
454
+
455
+
456
+
457
+
458
+
459
+
460
+ <span class="summary_desc"><div class='inline'></div></span>
461
+
462
+ </li>
463
+
464
+
465
+ <li class="public ">
466
+ <span class="summary_signature">
467
+
468
+ <a href="#override_desc-instance_method" title="#override_desc (instance method)">#<strong>override_desc</strong>(data, exp) &#x21d2; Object </a>
469
+
470
+
471
+
472
+ </span>
473
+
474
+
475
+
476
+
477
+
478
+
479
+
480
+
481
+
482
+ <span class="summary_desc"><div class='inline'></div></span>
483
+
484
+ </li>
485
+
486
+
487
+ <li class="public ">
488
+ <span class="summary_signature">
489
+
490
+ <a href="#read_json_file-instance_method" title="#read_json_file (instance method)">#<strong>read_json_file</strong>(xjson_file) &#x21d2; Object </a>
491
+
492
+
493
+
494
+ </span>
495
+
496
+
497
+
498
+
499
+
500
+
501
+
502
+
503
+
504
+ <span class="summary_desc"><div class='inline'>
505
+ <p>Read xjson file.</p>
506
+ </div></span>
507
+
508
+ </li>
509
+
510
+
511
+ <li class="public ">
512
+ <span class="summary_signature">
513
+
514
+ <a href="#reference-instance_method" title="#reference (instance method)">#<strong>reference</strong>(data, ref_desc) &#x21d2; Object </a>
515
+
516
+
517
+
518
+ </span>
519
+
520
+
521
+
522
+
523
+
524
+
525
+
526
+
527
+
528
+ <span class="summary_desc"><div class='inline'></div></span>
529
+
530
+ </li>
531
+
532
+
533
+ <li class="public ">
534
+ <span class="summary_signature">
535
+
536
+ <a href="#reference_handle-instance_method" title="#reference_handle (instance method)">#<strong>reference_handle</strong>(data, ref_desc) &#x21d2; Object </a>
537
+
538
+
539
+
540
+ </span>
541
+
542
+
543
+
544
+
545
+
546
+
547
+
548
+
549
+
550
+ <span class="summary_desc"><div class='inline'></div></span>
551
+
552
+ </li>
553
+
554
+
555
+ <li class="public ">
556
+ <span class="summary_signature">
557
+
558
+ <a href="#to_s-instance_method" title="#to_s (instance method)">#<strong>to_s</strong> &#x21d2; Object </a>
559
+
560
+
561
+
562
+ </span>
563
+
564
+
565
+
566
+
567
+
568
+
569
+
570
+
571
+
572
+ <span class="summary_desc"><div class='inline'>
573
+ <p>Return JSON data as string.</p>
574
+ </div></span>
575
+
576
+ </li>
577
+
578
+
579
+ <li class="public ">
580
+ <span class="summary_signature">
581
+
582
+ <a href="#write_json_file-instance_method" title="#write_json_file (instance method)">#<strong>write_json_file</strong>(json_file) &#x21d2; Object </a>
583
+
584
+
585
+
586
+ </span>
587
+
588
+
589
+
590
+
591
+
592
+
593
+
594
+
595
+
596
+ <span class="summary_desc"><div class='inline'>
597
+ <p>Write expanded json file.</p>
598
+ </div></span>
599
+
600
+ </li>
601
+
602
+
603
+ </ul>
604
+
605
+
606
+ <div id="constructor_details" class="method_details_list">
607
+ <h2>Constructor Details</h2>
608
+
609
+ <div class="method_details first">
610
+ <h3 class="signature first" id="initialize-instance_method">
611
+
612
+ #<strong>initialize</strong>(xjson_file) &#x21d2; <tt><span class='object_link'><a href="" title="Xjson (class)">Xjson</a></span></tt>
613
+
614
+
615
+
616
+
617
+
618
+ </h3><div class="docstring">
619
+ <div class="discussion">
620
+
621
+ <p>Returns a new instance of Xjson.</p>
622
+
623
+
624
+ </div>
625
+ </div>
626
+ <div class="tags">
627
+
628
+
629
+ </div><table class="source_code">
630
+ <tr>
631
+ <td>
632
+ <pre class="lines">
633
+
634
+
635
+ 22
636
+ 23
637
+ 24
638
+ 25
639
+ 26
640
+ 27
641
+ 28</pre>
642
+ </td>
643
+ <td>
644
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 22</span>
645
+
646
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span> <span class='id identifier rubyid_xjson_file'>xjson_file</span> <span class='rparen'>)</span>
647
+ <span class='ivar'>@cur_file</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
648
+ <span class='ivar'>@cur_data</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
649
+ <span class='ivar'>@ext_data</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
650
+ <span class='ivar'>@ext_data</span> <span class='op'>=</span> <span class='id identifier rubyid_read_json_file'>read_json_file</span><span class='lparen'>(</span> <span class='id identifier rubyid_xjson_file'>xjson_file</span> <span class='rparen'>)</span>
651
+ <span class='ivar'>@data</span> <span class='op'>=</span> <span class='id identifier rubyid_expand'>expand</span><span class='lparen'>(</span> <span class='ivar'>@ext_data</span> <span class='rparen'>)</span>
652
+ <span class='kw'>end</span></pre>
653
+ </td>
654
+ </tr>
655
+ </table>
656
+ </div>
657
+
658
+ </div>
659
+
660
+ <div id="instance_attr_details" class="attr_details">
661
+ <h2>Instance Attribute Details</h2>
662
+
663
+
664
+ <span id=""></span>
665
+ <div class="method_details first">
666
+ <h3 class="signature first" id="data-instance_method">
667
+
668
+ #<strong>data</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
669
+
670
+
671
+
672
+
673
+
674
+ </h3><div class="docstring">
675
+ <div class="discussion">
676
+
677
+ <p>Returns the value of attribute data.</p>
678
+
679
+
680
+ </div>
681
+ </div>
682
+ <div class="tags">
683
+
684
+
685
+ </div><table class="source_code">
686
+ <tr>
687
+ <td>
688
+ <pre class="lines">
689
+
690
+
691
+ 19
692
+ 20
693
+ 21</pre>
694
+ </td>
695
+ <td>
696
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 19</span>
697
+
698
+ <span class='kw'>def</span> <span class='id identifier rubyid_data'>data</span>
699
+ <span class='ivar'>@data</span>
700
+ <span class='kw'>end</span></pre>
701
+ </td>
702
+ </tr>
703
+ </table>
704
+ </div>
705
+
706
+
707
+ <span id=""></span>
708
+ <div class="method_details ">
709
+ <h3 class="signature " id="dir-instance_method">
710
+
711
+ #<strong>dir</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
712
+
713
+
714
+
715
+
716
+
717
+ </h3><div class="docstring">
718
+ <div class="discussion">
719
+
720
+ <p>Returns the value of attribute dir.</p>
721
+
722
+
723
+ </div>
724
+ </div>
725
+ <div class="tags">
726
+
727
+
728
+ </div><table class="source_code">
729
+ <tr>
730
+ <td>
731
+ <pre class="lines">
732
+
733
+
734
+ 20
735
+ 21
736
+ 22</pre>
737
+ </td>
738
+ <td>
739
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 20</span>
740
+
741
+ <span class='kw'>def</span> <span class='id identifier rubyid_dir'>dir</span>
742
+ <span class='ivar'>@dir</span>
743
+ <span class='kw'>end</span></pre>
744
+ </td>
745
+ </tr>
746
+ </table>
747
+ </div>
748
+
749
+
750
+ <span id=""></span>
751
+ <div class="method_details ">
752
+ <h3 class="signature " id="ext_data-instance_method">
753
+
754
+ #<strong>ext_data</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
755
+
756
+
757
+
758
+
759
+
760
+ </h3><div class="docstring">
761
+ <div class="discussion">
762
+
763
+ <p>Returns the value of attribute ext_data.</p>
764
+
765
+
766
+ </div>
767
+ </div>
768
+ <div class="tags">
769
+
770
+
771
+ </div><table class="source_code">
772
+ <tr>
773
+ <td>
774
+ <pre class="lines">
775
+
776
+
777
+ 18
778
+ 19
779
+ 20</pre>
780
+ </td>
781
+ <td>
782
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 18</span>
783
+
784
+ <span class='kw'>def</span> <span class='id identifier rubyid_ext_data'>ext_data</span>
785
+ <span class='ivar'>@ext_data</span>
786
+ <span class='kw'>end</span></pre>
787
+ </td>
788
+ </tr>
789
+ </table>
790
+ </div>
791
+
792
+ </div>
793
+
794
+
795
+ <div id="class_method_details" class="method_details_list">
796
+ <h2>Class Method Details</h2>
797
+
798
+
799
+ <div class="method_details first">
800
+ <h3 class="signature first" id="load-class_method">
801
+
802
+ .<strong>load</strong>(filename) &#x21d2; <tt>Object</tt>
803
+
804
+
805
+
806
+
807
+
808
+ </h3><table class="source_code">
809
+ <tr>
810
+ <td>
811
+ <pre class="lines">
812
+
813
+
814
+ 14
815
+ 15
816
+ 16</pre>
817
+ </td>
818
+ <td>
819
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 14</span>
820
+
821
+ <span class='kw'>def</span> <span class='const'><span class='object_link'><a href="" title="Xjson (class)">Xjson</a></span></span><span class='period'>.</span><span class='id identifier rubyid_load'>load</span><span class='lparen'>(</span> <span class='id identifier rubyid_filename'>filename</span> <span class='rparen'>)</span>
822
+ <span class='const'>Marshal</span><span class='period'>.</span><span class='id identifier rubyid_load'>load</span><span class='lparen'>(</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span> <span class='id identifier rubyid_filename'>filename</span> <span class='rparen'>)</span> <span class='rparen'>)</span>
823
+ <span class='kw'>end</span></pre>
824
+ </td>
825
+ </tr>
826
+ </table>
827
+ </div>
828
+
829
+ <div class="method_details ">
830
+ <h3 class="signature " id="version-class_method">
831
+
832
+ .<strong>version</strong> &#x21d2; <tt>Object</tt>
833
+
834
+
835
+
836
+
837
+
838
+ </h3><table class="source_code">
839
+ <tr>
840
+ <td>
841
+ <pre class="lines">
842
+
843
+
844
+ 3
845
+ 4
846
+ 5</pre>
847
+ </td>
848
+ <td>
849
+ <pre class="code"><span class="info file"># File 'lib/version.rb', line 3</span>
850
+
851
+ <span class='kw'>def</span> <span class='const'><span class='object_link'><a href="" title="Xjson (class)">Xjson</a></span></span><span class='period'>.</span><span class='id identifier rubyid_version'>version</span>
852
+ <span class='const'><span class='object_link'><a href="" title="Xjson (class)">Xjson</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="#VERSION-constant" title="Xjson::VERSION (constant)">VERSION</a></span></span>
853
+ <span class='kw'>end</span></pre>
854
+ </td>
855
+ </tr>
856
+ </table>
857
+ </div>
858
+
859
+ </div>
860
+
861
+ <div id="instance_method_details" class="method_details_list">
862
+ <h2>Instance Method Details</h2>
863
+
864
+
865
+ <div class="method_details first">
866
+ <h3 class="signature first" id="dump-instance_method">
867
+
868
+ #<strong>dump</strong>(filename) &#x21d2; <tt>Object</tt>
869
+
870
+
871
+
872
+
873
+
874
+ </h3><div class="docstring">
875
+ <div class="discussion">
876
+
877
+ <p>Dump JSON data as marshal.</p>
878
+
879
+
880
+ </div>
881
+ </div>
882
+ <div class="tags">
883
+
884
+
885
+ </div><table class="source_code">
886
+ <tr>
887
+ <td>
888
+ <pre class="lines">
889
+
890
+
891
+ 266
892
+ 267
893
+ 268</pre>
894
+ </td>
895
+ <td>
896
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 266</span>
897
+
898
+ <span class='kw'>def</span> <span class='id identifier rubyid_dump'>dump</span><span class='lparen'>(</span> <span class='id identifier rubyid_filename'>filename</span> <span class='rparen'>)</span>
899
+ <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span> <span class='id identifier rubyid_filename'>filename</span><span class='comma'>,</span> <span class='const'>Marshal</span><span class='period'>.</span><span class='id identifier rubyid_dump'>dump</span><span class='lparen'>(</span> <span class='ivar'>@data</span> <span class='rparen'>)</span> <span class='rparen'>)</span>
900
+ <span class='kw'>end</span></pre>
901
+ </td>
902
+ </tr>
903
+ </table>
904
+ </div>
905
+
906
+ <div class="method_details ">
907
+ <h3 class="signature " id="expand-instance_method">
908
+
909
+ #<strong>expand</strong>(data) &#x21d2; <tt>Object</tt>
910
+
911
+
912
+
913
+
914
+
915
+ </h3><div class="docstring">
916
+ <div class="discussion">
917
+
918
+ <p>Expand json recursively.</p>
919
+
920
+
921
+ </div>
922
+ </div>
923
+ <div class="tags">
924
+
925
+
926
+ </div><table class="source_code">
927
+ <tr>
928
+ <td>
929
+ <pre class="lines">
930
+
931
+
932
+ 153
933
+ 154
934
+ 155
935
+ 156
936
+ 157
937
+ 158
938
+ 159
939
+ 160
940
+ 161
941
+ 162
942
+ 163
943
+ 164
944
+ 165
945
+ 166
946
+ 167
947
+ 168
948
+ 169
949
+ 170
950
+ 171
951
+ 172
952
+ 173
953
+ 174
954
+ 175
955
+ 176
956
+ 177
957
+ 178
958
+ 179
959
+ 180
960
+ 181
961
+ 182
962
+ 183
963
+ 184
964
+ 185
965
+ 186
966
+ 187
967
+ 188
968
+ 189
969
+ 190
970
+ 191
971
+ 192
972
+ 193
973
+ 194
974
+ 195
975
+ 196
976
+ 197
977
+ 198
978
+ 199
979
+ 200
980
+ 201
981
+ 202
982
+ 203
983
+ 204
984
+ 205
985
+ 206
986
+ 207
987
+ 208
988
+ 209
989
+ 210
990
+ 211
991
+ 212
992
+ 213
993
+ 214
994
+ 215
995
+ 216
996
+ 217
997
+ 218
998
+ 219
999
+ 220
1000
+ 221
1001
+ 222
1002
+ 223
1003
+ 224
1004
+ 225
1005
+ 226
1006
+ 227
1007
+ 228
1008
+ 229
1009
+ 230
1010
+ 231
1011
+ 232
1012
+ 233
1013
+ 234
1014
+ 235
1015
+ 236
1016
+ 237
1017
+ 238
1018
+ 239
1019
+ 240
1020
+ 241
1021
+ 242
1022
+ 243
1023
+ 244
1024
+ 245
1025
+ 246
1026
+ 247
1027
+ 248
1028
+ 249
1029
+ 250
1030
+ 251
1031
+ 252
1032
+ 253
1033
+ 254
1034
+ 255
1035
+ 256
1036
+ 257
1037
+ 258</pre>
1038
+ </td>
1039
+ <td>
1040
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 153</span>
1041
+
1042
+ <span class='kw'>def</span> <span class='id identifier rubyid_expand'>expand</span><span class='lparen'>(</span> <span class='id identifier rubyid_data'>data</span> <span class='rparen'>)</span>
1043
+
1044
+ <span class='kw'>case</span> <span class='id identifier rubyid_data'>data</span>
1045
+
1046
+ <span class='kw'>when</span> <span class='const'>TrueClass</span><span class='semicolon'>;</span> <span class='id identifier rubyid_data'>data</span>
1047
+
1048
+ <span class='kw'>when</span> <span class='const'>FalseClass</span><span class='semicolon'>;</span> <span class='id identifier rubyid_data'>data</span>
1049
+
1050
+ <span class='kw'>when</span> <span class='const'>Float</span><span class='semicolon'>;</span> <span class='id identifier rubyid_data'>data</span>
1051
+
1052
+ <span class='kw'>when</span> <span class='const'>Integer</span><span class='semicolon'>;</span> <span class='id identifier rubyid_data'>data</span>
1053
+
1054
+ <span class='kw'>when</span> <span class='const'>String</span><span class='semicolon'>;</span> <span class='id identifier rubyid_data'>data</span>
1055
+
1056
+ <span class='kw'>when</span> <span class='const'>Array</span><span class='semicolon'>;</span>
1057
+ <span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1058
+ <span class='ivar'>@cur_data</span><span class='period'>.</span><span class='id identifier rubyid_unshift'>unshift</span> <span class='id identifier rubyid_ret'>ret</span>
1059
+ <span class='id identifier rubyid_data'>data</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_v'>v</span><span class='op'>|</span>
1060
+ <span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_expand'>expand</span><span class='lparen'>(</span> <span class='id identifier rubyid_v'>v</span> <span class='rparen'>)</span>
1061
+ <span class='id identifier rubyid_ret'>ret</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span> <span class='id identifier rubyid_value'>value</span> <span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span>
1062
+ <span class='kw'>end</span>
1063
+ <span class='ivar'>@cur_data</span><span class='period'>.</span><span class='id identifier rubyid_shift'>shift</span>
1064
+ <span class='id identifier rubyid_ret'>ret</span>
1065
+
1066
+ <span class='kw'>when</span> <span class='const'>Hash</span>
1067
+
1068
+ <span class='kw'>if</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='op'>==</span> <span class='int'>1</span>
1069
+
1070
+ <span class='comment'># Most possible extension.
1071
+ </span>
1072
+ <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_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
1073
+
1074
+ <span class='kw'>case</span> <span class='id identifier rubyid_k'>k</span>
1075
+
1076
+ <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@eval</span><span class='tstring_end'>&quot;</span></span>
1077
+ <span class='backtick'>%x&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_expand'>expand</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1078
+
1079
+ <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@env</span><span class='tstring_end'>&quot;</span></span>
1080
+ <span class='const'>ENV</span><span class='lbracket'>[</span><span class='id identifier rubyid_expand'>expand</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span><span class='rbracket'>]</span>
1081
+
1082
+ <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@join</span><span class='tstring_end'>&quot;</span></span>
1083
+ <span class='id identifier rubyid_flatten'>flatten</span><span class='lparen'>(</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='int'>1</span><span class='op'>..</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='id identifier rubyid_expand'>expand</span><span class='lparen'>(</span> <span class='id identifier rubyid_i'>i</span> <span class='rparen'>)</span><span class='rbrace'>}</span> <span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='rparen'>)</span>
1084
+
1085
+ <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@flat</span><span class='tstring_end'>&quot;</span></span>
1086
+ <span class='id identifier rubyid_flatten'>flatten</span><span class='lparen'>(</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='int'>1</span><span class='op'>..</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span> <span class='id identifier rubyid_expand'>expand</span><span class='lparen'>(</span> <span class='id identifier rubyid_i'>i</span> <span class='rparen'>)</span><span class='rbrace'>}</span> <span class='rparen'>)</span>
1087
+
1088
+ <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@self</span><span class='tstring_end'>&quot;</span></span>
1089
+ <span class='id identifier rubyid_reference'>reference</span><span class='lparen'>(</span> <span class='ivar'>@ext_data</span><span class='comma'>,</span> <span class='id identifier rubyid_expand'>expand</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span> <span class='rparen'>)</span>
1090
+
1091
+ <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@over</span><span class='tstring_end'>&quot;</span></span><span class='semicolon'>;</span>
1092
+ <span class='id identifier rubyid_override'>override</span><span class='lparen'>(</span> <span class='ivar'>@cur_data</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_expand'>expand</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='kw'>true</span> <span class='rparen'>)</span>
1093
+ <span class='kw'>nil</span>
1094
+
1095
+ <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@base</span><span class='tstring_end'>&quot;</span></span><span class='semicolon'>;</span>
1096
+ <span class='id identifier rubyid_override'>override</span><span class='lparen'>(</span> <span class='ivar'>@cur_data</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_expand'>expand</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='kw'>false</span> <span class='rparen'>)</span>
1097
+ <span class='kw'>nil</span>
1098
+
1099
+ <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@null</span><span class='tstring_end'>&quot;</span></span>
1100
+ <span class='kw'>nil</span>
1101
+
1102
+ <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@include</span><span class='tstring_end'>&quot;</span></span><span class='semicolon'>;</span>
1103
+ <span class='id identifier rubyid_jsonfile'>jsonfile</span> <span class='op'>=</span> <span class='id identifier rubyid_expand'>expand</span><span class='lparen'>(</span><span class='id identifier rubyid_v'>v</span><span class='rparen'>)</span>
1104
+ <span class='id identifier rubyid_subdata'>subdata</span> <span class='op'>=</span> <span class='id identifier rubyid_read_json_file'>read_json_file</span><span class='lparen'>(</span> <span class='id identifier rubyid_jsonfile'>jsonfile</span> <span class='rparen'>)</span>
1105
+ <span class='id identifier rubyid_expdata'>expdata</span> <span class='op'>=</span> <span class='id identifier rubyid_expand'>expand</span><span class='lparen'>(</span> <span class='id identifier rubyid_subdata'>subdata</span> <span class='rparen'>)</span>
1106
+ <span class='kw'>if</span> <span class='id identifier rubyid_expdata'>expdata</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>Hash</span>
1107
+ <span class='kw'>if</span> <span class='ivar'>@cur_data</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='id identifier rubyid_expdata'>expdata</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span>
1108
+ <span class='id identifier rubyid_expdata'>expdata</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_ke'>ke</span><span class='comma'>,</span><span class='id identifier rubyid_ve'>ve</span><span class='op'>|</span>
1109
+ <span class='ivar'>@cur_data</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='lbracket'>[</span> <span class='id identifier rubyid_ke'>ke</span> <span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_ve'>ve</span>
1110
+ <span class='kw'>end</span>
1111
+ <span class='kw'>else</span>
1112
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Xjson/XjsonIncludeError.html" title="Xjson::XjsonIncludeError (class)">XjsonIncludeError</a></span></span><span class='comma'>,</span>
1113
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Included file (\&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_jsonfile'>jsonfile</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot;) must contain a hash as top level</span><span class='tstring_end'>&quot;</span></span>
1114
+ <span class='kw'>end</span>
1115
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_expdata'>expdata</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>Array</span>
1116
+ <span class='id identifier rubyid_expdata'>expdata</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_ve'>ve</span><span class='op'>|</span>
1117
+ <span class='ivar'>@cur_data</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span> <span class='id identifier rubyid_ve'>ve</span>
1118
+ <span class='kw'>end</span>
1119
+ <span class='kw'>else</span>
1120
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Xjson/XjsonIncludeError.html" title="Xjson::XjsonIncludeError (class)">XjsonIncludeError</a></span></span><span class='comma'>,</span>
1121
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Included file (\&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_jsonfile'>jsonfile</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot;) must contain a hash or a an array as top level</span><span class='tstring_end'>&quot;</span></span>
1122
+ <span class='kw'>end</span>
1123
+ <span class='ivar'>@cur_file</span><span class='period'>.</span><span class='id identifier rubyid_shift'>shift</span>
1124
+ <span class='kw'>nil</span>
1125
+
1126
+ <span class='kw'>else</span>
1127
+ <span class='comment'># Non-extension.
1128
+ </span> <span class='lbrace'>{</span> <span class='id identifier rubyid_k'>k</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_expand'>expand</span><span class='lparen'>(</span> <span class='id identifier rubyid_v'>v</span> <span class='rparen'>)</span> <span class='rbrace'>}</span>
1129
+
1130
+ <span class='kw'>end</span>
1131
+
1132
+ <span class='kw'>else</span>
1133
+ <span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
1134
+ <span class='ivar'>@cur_data</span><span class='period'>.</span><span class='id identifier rubyid_unshift'>unshift</span> <span class='id identifier rubyid_ret'>ret</span>
1135
+ <span class='id identifier rubyid_data'>data</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_k'>k</span><span class='comma'>,</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span>
1136
+ <span class='kw'>case</span> <span class='id identifier rubyid_k'>k</span>
1137
+ <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>@null</span><span class='tstring_end'>&quot;</span></span><span class='semicolon'>;</span> <span class='kw'>nil</span>
1138
+ <span class='kw'>else</span>
1139
+ <span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_expand'>expand</span><span class='lparen'>(</span> <span class='id identifier rubyid_v'>v</span> <span class='rparen'>)</span>
1140
+ <span class='id identifier rubyid_ret'>ret</span><span class='lbracket'>[</span> <span class='id identifier rubyid_k'>k</span> <span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span>
1141
+ <span class='kw'>end</span>
1142
+ <span class='kw'>end</span>
1143
+ <span class='ivar'>@cur_data</span><span class='period'>.</span><span class='id identifier rubyid_shift'>shift</span>
1144
+ <span class='id identifier rubyid_ret'>ret</span>
1145
+ <span class='kw'>end</span>
1146
+ <span class='kw'>end</span>
1147
+ <span class='kw'>end</span></pre>
1148
+ </td>
1149
+ </tr>
1150
+ </table>
1151
+ </div>
1152
+
1153
+ <div class="method_details ">
1154
+ <h3 class="signature " id="find_in_array_of_hash-instance_method">
1155
+
1156
+ #<strong>find_in_array_of_hash</strong>(scope, key, value) &#x21d2; <tt>Object</tt>
1157
+
1158
+
1159
+
1160
+
1161
+
1162
+ </h3><table class="source_code">
1163
+ <tr>
1164
+ <td>
1165
+ <pre class="lines">
1166
+
1167
+
1168
+ 63
1169
+ 64
1170
+ 65
1171
+ 66
1172
+ 67
1173
+ 68
1174
+ 69
1175
+ 70
1176
+ 71
1177
+ 72</pre>
1178
+ </td>
1179
+ <td>
1180
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 63</span>
1181
+
1182
+ <span class='kw'>def</span> <span class='id identifier rubyid_find_in_array_of_hash'>find_in_array_of_hash</span><span class='lparen'>(</span> <span class='id identifier rubyid_scope'>scope</span><span class='comma'>,</span> <span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span> <span class='rparen'>)</span>
1183
+ <span class='id identifier rubyid_index'>index</span> <span class='op'>=</span> <span class='int'>0</span>
1184
+ <span class='kw'>while</span> <span class='id identifier rubyid_index'>index</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_scope'>scope</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span>
1185
+ <span class='kw'>if</span> <span class='const'>Regexp</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='lparen'>(</span> <span class='id identifier rubyid_scope'>scope</span><span class='lbracket'>[</span> <span class='id identifier rubyid_index'>index</span> <span class='rbracket'>]</span><span class='lbracket'>[</span> <span class='id identifier rubyid_key'>key</span> <span class='rbracket'>]</span> <span class='rparen'>)</span>
1186
+ <span class='kw'>return</span> <span class='id identifier rubyid_index'>index</span>
1187
+ <span class='kw'>end</span>
1188
+ <span class='id identifier rubyid_index'>index</span> <span class='op'>+=</span> <span class='int'>1</span>
1189
+ <span class='kw'>end</span>
1190
+ <span class='kw'>nil</span>
1191
+ <span class='kw'>end</span></pre>
1192
+ </td>
1193
+ </tr>
1194
+ </table>
1195
+ </div>
1196
+
1197
+ <div class="method_details ">
1198
+ <h3 class="signature " id="flatten-instance_method">
1199
+
1200
+ #<strong>flatten</strong>(data) &#x21d2; <tt>Object</tt>
1201
+
1202
+
1203
+
1204
+
1205
+
1206
+ </h3><div class="docstring">
1207
+ <div class="discussion">
1208
+
1209
+ <p>Flatten by one level within array.</p>
1210
+
1211
+
1212
+ </div>
1213
+ </div>
1214
+ <div class="tags">
1215
+
1216
+
1217
+ </div><table class="source_code">
1218
+ <tr>
1219
+ <td>
1220
+ <pre class="lines">
1221
+
1222
+
1223
+ 46
1224
+ 47
1225
+ 48
1226
+ 49
1227
+ 50
1228
+ 51
1229
+ 52
1230
+ 53
1231
+ 54
1232
+ 55
1233
+ 56
1234
+ 57
1235
+ 58
1236
+ 59
1237
+ 60
1238
+ 61</pre>
1239
+ </td>
1240
+ <td>
1241
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 46</span>
1242
+
1243
+ <span class='kw'>def</span> <span class='id identifier rubyid_flatten'>flatten</span><span class='lparen'>(</span> <span class='id identifier rubyid_data'>data</span> <span class='rparen'>)</span>
1244
+ <span class='kw'>case</span> <span class='id identifier rubyid_data'>data</span>
1245
+ <span class='kw'>when</span> <span class='const'>Array</span><span class='semicolon'>;</span>
1246
+ <span class='id identifier rubyid_res'>res</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1247
+ <span class='id identifier rubyid_data'>data</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_i'>i</span><span class='op'>|</span>
1248
+ <span class='kw'>if</span> <span class='id identifier rubyid_i'>i</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span> <span class='op'>==</span> <span class='const'>Array</span>
1249
+ <span class='id identifier rubyid_res'>res</span> <span class='op'>+=</span> <span class='id identifier rubyid_i'>i</span>
1250
+ <span class='kw'>else</span>
1251
+ <span class='id identifier rubyid_res'>res</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span> <span class='id identifier rubyid_i'>i</span>
1252
+ <span class='kw'>end</span>
1253
+ <span class='kw'>end</span>
1254
+ <span class='id identifier rubyid_res'>res</span>
1255
+ <span class='kw'>else</span>
1256
+ <span class='id identifier rubyid_data'>data</span>
1257
+ <span class='kw'>end</span>
1258
+ <span class='kw'>end</span></pre>
1259
+ </td>
1260
+ </tr>
1261
+ </table>
1262
+ </div>
1263
+
1264
+ <div class="method_details ">
1265
+ <h3 class="signature " id="override-instance_method">
1266
+
1267
+ #<strong>override</strong>(data, exp, overwrite = false) &#x21d2; <tt>Object</tt>
1268
+
1269
+
1270
+
1271
+
1272
+
1273
+ </h3><table class="source_code">
1274
+ <tr>
1275
+ <td>
1276
+ <pre class="lines">
1277
+
1278
+
1279
+ 146
1280
+ 147
1281
+ 148
1282
+ 149</pre>
1283
+ </td>
1284
+ <td>
1285
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 146</span>
1286
+
1287
+ <span class='kw'>def</span> <span class='id identifier rubyid_override'>override</span><span class='lparen'>(</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_exp'>exp</span><span class='comma'>,</span> <span class='id identifier rubyid_overwrite'>overwrite</span> <span class='op'>=</span> <span class='kw'>false</span> <span class='rparen'>)</span>
1288
+ <span class='id identifier rubyid_desc'>desc</span> <span class='op'>=</span> <span class='id identifier rubyid_override_desc'>override_desc</span><span class='lparen'>(</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_exp'>exp</span> <span class='rparen'>)</span>
1289
+ <span class='id identifier rubyid_override_apply'>override_apply</span><span class='lparen'>(</span> <span class='id identifier rubyid_desc'>desc</span><span class='comma'>,</span> <span class='id identifier rubyid_overwrite'>overwrite</span> <span class='rparen'>)</span>
1290
+ <span class='kw'>end</span></pre>
1291
+ </td>
1292
+ </tr>
1293
+ </table>
1294
+ </div>
1295
+
1296
+ <div class="method_details ">
1297
+ <h3 class="signature " id="override_apply-instance_method">
1298
+
1299
+ #<strong>override_apply</strong>(desc, overwrite = false) &#x21d2; <tt>Object</tt>
1300
+
1301
+
1302
+
1303
+
1304
+
1305
+ </h3><table class="source_code">
1306
+ <tr>
1307
+ <td>
1308
+ <pre class="lines">
1309
+
1310
+
1311
+ 131
1312
+ 132
1313
+ 133
1314
+ 134
1315
+ 135
1316
+ 136
1317
+ 137
1318
+ 138
1319
+ 139
1320
+ 140
1321
+ 141
1322
+ 142
1323
+ 143</pre>
1324
+ </td>
1325
+ <td>
1326
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 131</span>
1327
+
1328
+ <span class='kw'>def</span> <span class='id identifier rubyid_override_apply'>override_apply</span><span class='lparen'>(</span> <span class='id identifier rubyid_desc'>desc</span><span class='comma'>,</span> <span class='id identifier rubyid_overwrite'>overwrite</span> <span class='op'>=</span> <span class='kw'>false</span> <span class='rparen'>)</span>
1329
+ <span class='kw'>if</span> <span class='id identifier rubyid_desc'>desc</span><span class='lbracket'>[</span><span class='symbol'>:label</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>*</span><span class='tstring_end'>&quot;</span></span>
1330
+ <span class='id identifier rubyid_desc'>desc</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</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_place'>place</span><span class='op'>|</span>
1331
+ <span class='kw'>if</span> <span class='kw'>not</span><span class='lparen'>(</span> <span class='id identifier rubyid_place'>place</span><span class='lbracket'>[</span> <span class='id identifier rubyid_desc'>desc</span><span class='lbracket'>[</span><span class='symbol'>:value</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='rbracket'>]</span> <span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_overwrite'>overwrite</span>
1332
+ <span class='id identifier rubyid_place'>place</span><span class='lbracket'>[</span> <span class='id identifier rubyid_desc'>desc</span><span class='lbracket'>[</span><span class='symbol'>:value</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_desc'>desc</span><span class='lbracket'>[</span><span class='symbol'>:value</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span>
1333
+ <span class='kw'>end</span>
1334
+ <span class='kw'>end</span>
1335
+ <span class='kw'>else</span>
1336
+ <span class='kw'>if</span> <span class='kw'>not</span><span class='lparen'>(</span> <span class='id identifier rubyid_desc'>desc</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='id identifier rubyid_desc'>desc</span><span class='lbracket'>[</span><span class='symbol'>:label</span><span class='rbracket'>]</span><span class='rbracket'>]</span> <span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_overwrite'>overwrite</span>
1337
+ <span class='id identifier rubyid_desc'>desc</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='id identifier rubyid_desc'>desc</span><span class='lbracket'>[</span><span class='symbol'>:label</span><span class='rbracket'>]</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_desc'>desc</span><span class='lbracket'>[</span><span class='symbol'>:value</span><span class='rbracket'>]</span>
1338
+ <span class='kw'>end</span>
1339
+ <span class='kw'>end</span>
1340
+ <span class='kw'>end</span></pre>
1341
+ </td>
1342
+ </tr>
1343
+ </table>
1344
+ </div>
1345
+
1346
+ <div class="method_details ">
1347
+ <h3 class="signature " id="override_desc-instance_method">
1348
+
1349
+ #<strong>override_desc</strong>(data, exp) &#x21d2; <tt>Object</tt>
1350
+
1351
+
1352
+
1353
+
1354
+
1355
+ </h3><table class="source_code">
1356
+ <tr>
1357
+ <td>
1358
+ <pre class="lines">
1359
+
1360
+
1361
+ 125
1362
+ 126
1363
+ 127
1364
+ 128</pre>
1365
+ </td>
1366
+ <td>
1367
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 125</span>
1368
+
1369
+ <span class='kw'>def</span> <span class='id identifier rubyid_override_desc'>override_desc</span><span class='lparen'>(</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_exp'>exp</span> <span class='rparen'>)</span>
1370
+ <span class='id identifier rubyid_path'>path</span><span class='comma'>,</span> <span class='id identifier rubyid_label'>label</span> <span class='op'>=</span> <span class='id identifier rubyid_reference_handle'>reference_handle</span><span class='lparen'>(</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_exp'>exp</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='rparen'>)</span>
1371
+ <span class='lbrace'>{</span> <span class='label'>path:</span> <span class='id identifier rubyid_path'>path</span><span class='comma'>,</span> <span class='label'>label:</span> <span class='id identifier rubyid_label'>label</span><span class='comma'>,</span> <span class='label'>value:</span> <span class='id identifier rubyid_exp'>exp</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='rbrace'>}</span>
1372
+ <span class='kw'>end</span></pre>
1373
+ </td>
1374
+ </tr>
1375
+ </table>
1376
+ </div>
1377
+
1378
+ <div class="method_details ">
1379
+ <h3 class="signature " id="read_json_file-instance_method">
1380
+
1381
+ #<strong>read_json_file</strong>(xjson_file) &#x21d2; <tt>Object</tt>
1382
+
1383
+
1384
+
1385
+
1386
+
1387
+ </h3><div class="docstring">
1388
+ <div class="discussion">
1389
+
1390
+ <p>Read xjson file.</p>
1391
+
1392
+
1393
+ </div>
1394
+ </div>
1395
+ <div class="tags">
1396
+
1397
+
1398
+ </div><table class="source_code">
1399
+ <tr>
1400
+ <td>
1401
+ <pre class="lines">
1402
+
1403
+
1404
+ 31
1405
+ 32
1406
+ 33
1407
+ 34
1408
+ 35
1409
+ 36
1410
+ 37
1411
+ 38</pre>
1412
+ </td>
1413
+ <td>
1414
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 31</span>
1415
+
1416
+ <span class='kw'>def</span> <span class='id identifier rubyid_read_json_file'>read_json_file</span><span class='lparen'>(</span> <span class='id identifier rubyid_xjson_file'>xjson_file</span> <span class='rparen'>)</span>
1417
+ <span class='ivar'>@cur_file</span><span class='period'>.</span><span class='id identifier rubyid_unshift'>unshift</span> <span class='id identifier rubyid_xjson_file'>xjson_file</span>
1418
+ <span class='kw'>if</span> <span class='id identifier rubyid_xjson_file'>xjson_file</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>!=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>&lt;</span><span class='tstring_end'>&quot;</span></span>
1419
+ <span class='const'>JSON</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span> <span class='id identifier rubyid_xjson_file'>xjson_file</span> <span class='rparen'>)</span> <span class='rparen'>)</span>
1420
+ <span class='kw'>else</span>
1421
+ <span class='const'>JSON</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span> <span class='const'>STDIN</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span> <span class='rparen'>)</span>
1422
+ <span class='kw'>end</span>
1423
+ <span class='kw'>end</span></pre>
1424
+ </td>
1425
+ </tr>
1426
+ </table>
1427
+ </div>
1428
+
1429
+ <div class="method_details ">
1430
+ <h3 class="signature " id="reference-instance_method">
1431
+
1432
+ #<strong>reference</strong>(data, ref_desc) &#x21d2; <tt>Object</tt>
1433
+
1434
+
1435
+
1436
+
1437
+
1438
+ </h3><table class="source_code">
1439
+ <tr>
1440
+ <td>
1441
+ <pre class="lines">
1442
+
1443
+
1444
+ 113
1445
+ 114
1446
+ 115
1447
+ 116
1448
+ 117
1449
+ 118
1450
+ 119
1451
+ 120
1452
+ 121
1453
+ 122
1454
+ 123</pre>
1455
+ </td>
1456
+ <td>
1457
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 113</span>
1458
+
1459
+ <span class='kw'>def</span> <span class='id identifier rubyid_reference'>reference</span><span class='lparen'>(</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_ref_desc'>ref_desc</span> <span class='rparen'>)</span>
1460
+ <span class='id identifier rubyid_path'>path</span><span class='comma'>,</span> <span class='id identifier rubyid_label'>label</span> <span class='op'>=</span> <span class='id identifier rubyid_reference_handle'>reference_handle</span><span class='lparen'>(</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_ref_desc'>ref_desc</span> <span class='rparen'>)</span>
1461
+ <span class='kw'>begin</span>
1462
+ <span class='id identifier rubyid_index'>index</span> <span class='op'>=</span> <span class='const'>Integer</span><span class='lparen'>(</span> <span class='id identifier rubyid_label'>label</span> <span class='rparen'>)</span>
1463
+ <span class='id identifier rubyid_scope'>scope</span> <span class='op'>=</span> <span class='id identifier rubyid_path'>path</span><span class='lbracket'>[</span> <span class='id identifier rubyid_index'>index</span> <span class='rbracket'>]</span>
1464
+ <span class='kw'>rescue</span>
1465
+ <span class='comment'># scope = scope[ path[0] ]
1466
+ </span> <span class='id identifier rubyid_scope'>scope</span> <span class='op'>=</span> <span class='id identifier rubyid_path'>path</span><span class='lbracket'>[</span> <span class='id identifier rubyid_label'>label</span> <span class='rbracket'>]</span>
1467
+ <span class='kw'>end</span>
1468
+ <span class='id identifier rubyid_scope'>scope</span>
1469
+ <span class='kw'>end</span></pre>
1470
+ </td>
1471
+ </tr>
1472
+ </table>
1473
+ </div>
1474
+
1475
+ <div class="method_details ">
1476
+ <h3 class="signature " id="reference_handle-instance_method">
1477
+
1478
+ #<strong>reference_handle</strong>(data, ref_desc) &#x21d2; <tt>Object</tt>
1479
+
1480
+
1481
+
1482
+
1483
+
1484
+ </h3><table class="source_code">
1485
+ <tr>
1486
+ <td>
1487
+ <pre class="lines">
1488
+
1489
+
1490
+ 74
1491
+ 75
1492
+ 76
1493
+ 77
1494
+ 78
1495
+ 79
1496
+ 80
1497
+ 81
1498
+ 82
1499
+ 83
1500
+ 84
1501
+ 85
1502
+ 86
1503
+ 87
1504
+ 88
1505
+ 89
1506
+ 90
1507
+ 91
1508
+ 92
1509
+ 93
1510
+ 94
1511
+ 95
1512
+ 96
1513
+ 97
1514
+ 98
1515
+ 99
1516
+ 100
1517
+ 101
1518
+ 102
1519
+ 103
1520
+ 104
1521
+ 105
1522
+ 106
1523
+ 107
1524
+ 108
1525
+ 109
1526
+ 110
1527
+ 111</pre>
1528
+ </td>
1529
+ <td>
1530
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 74</span>
1531
+
1532
+ <span class='kw'>def</span> <span class='id identifier rubyid_reference_handle'>reference_handle</span><span class='lparen'>(</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_ref_desc'>ref_desc</span> <span class='rparen'>)</span>
1533
+ <span class='kw'>if</span> <span class='id identifier rubyid_ref_desc'>ref_desc</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>!=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>:</span><span class='tstring_end'>&quot;</span></span>
1534
+ <span class='id identifier rubyid_reference_handle'>reference_handle</span><span class='lparen'>(</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>:</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_ref_desc'>ref_desc</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='rparen'>)</span>
1535
+ <span class='kw'>else</span>
1536
+ <span class='comment'># Relative reference from root.
1537
+ </span> <span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='id identifier rubyid_ref_desc'>ref_desc</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</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='rparen'>)</span><span class='lbracket'>[</span><span class='int'>1</span><span class='op'>..</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span>
1538
+ <span class='id identifier rubyid_scope'>scope</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span>
1539
+ <span class='kw'>while</span> <span class='id identifier rubyid_path'>path</span><span class='lbracket'>[</span><span class='int'>0</span><span class='op'>..</span><span class='op'>-</span><span class='int'>2</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span>
1540
+ <span class='kw'>if</span> <span class='id identifier rubyid_path'>path</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>*</span><span class='tstring_end'>&quot;</span></span>
1541
+ <span class='comment'># Wildcard for array.
1542
+ </span> <span class='kw'>unless</span> <span class='id identifier rubyid_path'>path</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_path'>path</span><span class='lbracket'>[</span><span class='int'>2</span><span class='rbracket'>]</span>
1543
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Xjson/XjsonReferenceError.html" title="Xjson::XjsonReferenceError (class)">XjsonReferenceError</a></span></span><span class='comma'>,</span>
1544
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Invalid reference: \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_ref_desc'>ref_desc</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot; in \&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@cur_file</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot;, missing match key and value ...</span><span class='tstring_end'>&quot;</span></span>
1545
+ <span class='kw'>end</span>
1546
+ <span class='id identifier rubyid_index'>index</span> <span class='op'>=</span> <span class='id identifier rubyid_find_in_array_of_hash'>find_in_array_of_hash</span><span class='lparen'>(</span> <span class='id identifier rubyid_scope'>scope</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='lbracket'>[</span><span class='int'>2</span><span class='rbracket'>]</span> <span class='rparen'>)</span>
1547
+ <span class='kw'>unless</span> <span class='id identifier rubyid_index'>index</span>
1548
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Xjson/XjsonReferenceError.html" title="Xjson::XjsonReferenceError (class)">XjsonReferenceError</a></span></span><span class='comma'>,</span>
1549
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Invalid reference: \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_ref_desc'>ref_desc</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot; in \&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@cur_file</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot;, key and value not matched ...</span><span class='tstring_end'>&quot;</span></span>
1550
+ <span class='kw'>end</span>
1551
+ <span class='id identifier rubyid_scope'>scope</span> <span class='op'>=</span> <span class='id identifier rubyid_scope'>scope</span><span class='lbracket'>[</span> <span class='id identifier rubyid_index'>index</span> <span class='rbracket'>]</span>
1552
+ <span class='id identifier rubyid_path'>path</span><span class='period'>.</span><span class='id identifier rubyid_shift'>shift</span><span class='lparen'>(</span> <span class='int'>2</span> <span class='rparen'>)</span>
1553
+ <span class='kw'>else</span>
1554
+ <span class='kw'>begin</span>
1555
+ <span class='id identifier rubyid_index'>index</span> <span class='op'>=</span> <span class='const'>Integer</span><span class='lparen'>(</span> <span class='id identifier rubyid_path'>path</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='rparen'>)</span>
1556
+ <span class='id identifier rubyid_scope'>scope</span> <span class='op'>=</span> <span class='id identifier rubyid_scope'>scope</span><span class='lbracket'>[</span> <span class='id identifier rubyid_index'>index</span> <span class='rbracket'>]</span>
1557
+ <span class='kw'>rescue</span>
1558
+ <span class='id identifier rubyid_scope'>scope</span> <span class='op'>=</span> <span class='id identifier rubyid_scope'>scope</span><span class='lbracket'>[</span> <span class='id identifier rubyid_path'>path</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='rbracket'>]</span>
1559
+ <span class='kw'>end</span>
1560
+ <span class='kw'>end</span>
1561
+ <span class='id identifier rubyid_path'>path</span><span class='period'>.</span><span class='id identifier rubyid_shift'>shift</span>
1562
+ <span class='kw'>unless</span> <span class='id identifier rubyid_scope'>scope</span>
1563
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Xjson/XjsonReferenceError.html" title="Xjson::XjsonReferenceError (class)">XjsonReferenceError</a></span></span><span class='comma'>,</span>
1564
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Invalid reference: \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_ref_desc'>ref_desc</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot; in \&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@cur_file</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot;...</span><span class='tstring_end'>&quot;</span></span>
1565
+ <span class='kw'>end</span>
1566
+ <span class='kw'>end</span>
1567
+ <span class='lbracket'>[</span> <span class='id identifier rubyid_scope'>scope</span><span class='comma'>,</span> <span class='id identifier rubyid_path'>path</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='rbracket'>]</span>
1568
+ <span class='kw'>end</span>
1569
+ <span class='kw'>end</span></pre>
1570
+ </td>
1571
+ </tr>
1572
+ </table>
1573
+ </div>
1574
+
1575
+ <div class="method_details ">
1576
+ <h3 class="signature " id="to_s-instance_method">
1577
+
1578
+ #<strong>to_s</strong> &#x21d2; <tt>Object</tt>
1579
+
1580
+
1581
+
1582
+
1583
+
1584
+ </h3><div class="docstring">
1585
+ <div class="discussion">
1586
+
1587
+ <p>Return JSON data as string.</p>
1588
+
1589
+
1590
+ </div>
1591
+ </div>
1592
+ <div class="tags">
1593
+
1594
+
1595
+ </div><table class="source_code">
1596
+ <tr>
1597
+ <td>
1598
+ <pre class="lines">
1599
+
1600
+
1601
+ 261
1602
+ 262
1603
+ 263</pre>
1604
+ </td>
1605
+ <td>
1606
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 261</span>
1607
+
1608
+ <span class='kw'>def</span> <span class='id identifier rubyid_to_s'>to_s</span>
1609
+ <span class='const'>JSON</span><span class='period'>.</span><span class='id identifier rubyid_pretty_generate'>pretty_generate</span><span class='lparen'>(</span> <span class='ivar'>@data</span> <span class='rparen'>)</span>
1610
+ <span class='kw'>end</span></pre>
1611
+ </td>
1612
+ </tr>
1613
+ </table>
1614
+ </div>
1615
+
1616
+ <div class="method_details ">
1617
+ <h3 class="signature " id="write_json_file-instance_method">
1618
+
1619
+ #<strong>write_json_file</strong>(json_file) &#x21d2; <tt>Object</tt>
1620
+
1621
+
1622
+
1623
+
1624
+
1625
+ </h3><div class="docstring">
1626
+ <div class="discussion">
1627
+
1628
+ <p>Write expanded json file.</p>
1629
+
1630
+
1631
+ </div>
1632
+ </div>
1633
+ <div class="tags">
1634
+
1635
+
1636
+ </div><table class="source_code">
1637
+ <tr>
1638
+ <td>
1639
+ <pre class="lines">
1640
+
1641
+
1642
+ 41
1643
+ 42
1644
+ 43</pre>
1645
+ </td>
1646
+ <td>
1647
+ <pre class="code"><span class="info file"># File 'lib/xjson.rb', line 41</span>
1648
+
1649
+ <span class='kw'>def</span> <span class='id identifier rubyid_write_json_file'>write_json_file</span><span class='lparen'>(</span> <span class='id identifier rubyid_json_file'>json_file</span> <span class='rparen'>)</span>
1650
+ <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span> <span class='id identifier rubyid_json_file'>json_file</span><span class='comma'>,</span> <span class='const'>JSON</span><span class='period'>.</span><span class='id identifier rubyid_pretty_generate'>pretty_generate</span><span class='lparen'>(</span> <span class='ivar'>@data</span> <span class='rparen'>)</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span> <span class='rparen'>)</span>
1651
+ <span class='kw'>end</span></pre>
1652
+ </td>
1653
+ </tr>
1654
+ </table>
1655
+ </div>
1656
+
1657
+ </div>
1658
+
1659
+ </div>
1660
+
1661
+ <div id="footer">
1662
+ Generated on Sat Jul 10 11:09:29 2021 by
1663
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1664
+ 0.9.25 (ruby-2.7.3).
1665
+ </div>
1666
+
1667
+ </div>
1668
+ </body>
1669
+ </html>