jini 0.0.8 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.yardoc/checksums +1 -1
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/README.md +2 -2
- data/doc/Jini/InvalidPath.html +1 -1
- data/doc/Jini.html +311 -89
- data/doc/_index.html +1 -1
- data/doc/file.README.html +3 -3
- data/doc/index.html +3 -3
- data/doc/method_list.html +18 -2
- data/doc/top-level-namespace.html +1 -1
- data/jini.gemspec +1 -1
- data/lib/jini.rb +76 -37
- data/test/jini_test.rb +49 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 37fa7411c121f52743f04f08f8e7a91b2a5a88275bd36ad095a20b64c35baa15
|
|
4
|
+
data.tar.gz: df8e15729c3e636d084891d72de3d007dcac6c27bdf8549da0499b03673a9258
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0bc989456746751fa359c7b02b698e92d702b1f5054e7192a6b2d57af41af708eac89d5738317072f60b09eee39e15d4ff0e0779f6c40277731ac6824f83ebd1
|
|
7
|
+
data.tar.gz: 6d9749d353663e76d960c24223ab7571978e8897239428d4a28da2d820d0225e51fb7c7fca03cea5920811d4404761a221eaab8657672747de2ba8c45727aca3
|
data/.yardoc/checksums
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
lib/jini.rb
|
|
1
|
+
lib/jini.rb 4989c06e96b00972b17c7373e6625e6ecc3bbb54
|
data/.yardoc/object_types
CHANGED
|
Binary file
|
data/.yardoc/objects/root.dat
CHANGED
|
Binary file
|
data/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://badge.fury.io/rb/jini)
|
|
4
4
|
|
|
5
|
-
The class [`Jini`](https://www.rubydoc.info/gems/jini/0.0.
|
|
5
|
+
The class [`Jini`](https://www.rubydoc.info/gems/jini/0.0.9/Jini) helps you build a XPATH.
|
|
6
6
|
|
|
7
7
|
```ruby
|
|
8
8
|
require 'jini'
|
|
@@ -16,7 +16,7 @@ xpath = Jini
|
|
|
16
16
|
puts(xpath) # -> xpath: /parent[@key="value"]
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
The full list of methods is [here](https://www.rubydoc.info/gems/jini/0.0.
|
|
19
|
+
The full list of methods is [here](https://www.rubydoc.info/gems/jini/0.0.9).
|
|
20
20
|
|
|
21
21
|
Install it:
|
|
22
22
|
|
data/doc/Jini/InvalidPath.html
CHANGED
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
</div>
|
|
126
126
|
|
|
127
127
|
<div id="footer">
|
|
128
|
-
Generated on
|
|
128
|
+
Generated on Sun Sep 18 00:36:17 2022 by
|
|
129
129
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
130
130
|
0.9.28 (ruby-3.0.0).
|
|
131
131
|
</div>
|
data/doc/Jini.html
CHANGED
|
@@ -104,11 +104,11 @@
|
|
|
104
104
|
|
|
105
105
|
<p>It’s a simple XPATH builder.</p>
|
|
106
106
|
|
|
107
|
-
<
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
.
|
|
111
|
-
.to_s //
|
|
107
|
+
<pre class="code ruby"><code class="ruby">require ‘jini’
|
|
108
|
+
xpath = Jini.new(‘parent’)
|
|
109
|
+
.add_node('child')
|
|
110
|
+
.add_attr('toy', 'plane')
|
|
111
|
+
.to_s // parent/child[@toy="plane"]
|
|
112
112
|
</code></pre>
|
|
113
113
|
|
|
114
114
|
|
|
@@ -256,7 +256,7 @@
|
|
|
256
256
|
|
|
257
257
|
|
|
258
258
|
<span class="summary_desc"><div class='inline'>
|
|
259
|
-
<p>Addition property in tail
|
|
259
|
+
<p>Addition property in tail.</p>
|
|
260
260
|
</div></span>
|
|
261
261
|
|
|
262
262
|
</li>
|
|
@@ -381,6 +381,30 @@
|
|
|
381
381
|
<p>Less than.</p>
|
|
382
382
|
</div></span>
|
|
383
383
|
|
|
384
|
+
</li>
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
<li class="public ">
|
|
388
|
+
<span class="summary_signature">
|
|
389
|
+
|
|
390
|
+
<a href="#new_attr_value-instance_method" title="#new_attr_value (instance method)">#<strong>new_attr_value</strong>(name, value) ⇒ Jini </a>
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
</span>
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
<span class="summary_desc"><div class='inline'>
|
|
405
|
+
<p>Replaces <strong>all</strong> attr <strong>values</strong> by name.</p>
|
|
406
|
+
</div></span>
|
|
407
|
+
|
|
384
408
|
</li>
|
|
385
409
|
|
|
386
410
|
|
|
@@ -426,7 +450,7 @@
|
|
|
426
450
|
|
|
427
451
|
|
|
428
452
|
<span class="summary_desc"><div class='inline'>
|
|
429
|
-
<p>Removes attr by name
|
|
453
|
+
<p>Removes attr by name.</p>
|
|
430
454
|
</div></span>
|
|
431
455
|
|
|
432
456
|
</li>
|
|
@@ -453,6 +477,30 @@
|
|
|
453
477
|
<p>Removes node by name.</p>
|
|
454
478
|
</div></span>
|
|
455
479
|
|
|
480
|
+
</li>
|
|
481
|
+
|
|
482
|
+
|
|
483
|
+
<li class="public ">
|
|
484
|
+
<span class="summary_signature">
|
|
485
|
+
|
|
486
|
+
<a href="#replace_node-instance_method" title="#replace_node (instance method)">#<strong>replace_node</strong>(origin, new) ⇒ Object </a>
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
</span>
|
|
491
|
+
|
|
492
|
+
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
<span class="summary_desc"><div class='inline'>
|
|
501
|
+
<p>This method replaces <strong>all</strong> origins to new.</p>
|
|
502
|
+
</div></span>
|
|
503
|
+
|
|
456
504
|
</li>
|
|
457
505
|
|
|
458
506
|
|
|
@@ -474,7 +522,7 @@
|
|
|
474
522
|
|
|
475
523
|
|
|
476
524
|
<span class="summary_desc"><div class='inline'>
|
|
477
|
-
<p>Replace all ‘/’ to ‘::’ symbols
|
|
525
|
+
<p>Replace all ‘/’ to ‘::’ symbols.</p>
|
|
478
526
|
</div></span>
|
|
479
527
|
|
|
480
528
|
</li>
|
|
@@ -655,12 +703,12 @@
|
|
|
655
703
|
<pre class="lines">
|
|
656
704
|
|
|
657
705
|
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
706
|
+
92
|
|
707
|
+
93
|
|
708
|
+
94</pre>
|
|
661
709
|
</td>
|
|
662
710
|
<td>
|
|
663
|
-
<pre class="code"><span class="info file"># File 'lib/jini.rb', line
|
|
711
|
+
<pre class="code"><span class="info file"># File 'lib/jini.rb', line 92</span>
|
|
664
712
|
|
|
665
713
|
<span class='kw'>def</span> <span class='id identifier rubyid_add_attr'>add_attr</span><span class='lparen'>(</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>
|
|
666
714
|
<span class='const'><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Jini#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='ivar'>@head</span><span class='embexpr_end'>}</span><span class='tstring_content'>[@</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_key'>key</span><span class='embexpr_end'>}</span><span class='tstring_content'>=\"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_value'>value</span><span class='embexpr_end'>}</span><span class='tstring_content'>\"]</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
|
@@ -682,7 +730,7 @@
|
|
|
682
730
|
</h3><div class="docstring">
|
|
683
731
|
<div class="discussion">
|
|
684
732
|
|
|
685
|
-
<p>Adds ‘@value’ to tail
|
|
733
|
+
<p>Adds ‘@value’ to tail.</p>
|
|
686
734
|
|
|
687
735
|
|
|
688
736
|
</div>
|
|
@@ -734,12 +782,12 @@
|
|
|
734
782
|
<pre class="lines">
|
|
735
783
|
|
|
736
784
|
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
785
|
+
99
|
|
786
|
+
100
|
|
787
|
+
101</pre>
|
|
740
788
|
</td>
|
|
741
789
|
<td>
|
|
742
|
-
<pre class="code"><span class="info file"># File 'lib/jini.rb', line
|
|
790
|
+
<pre class="code"><span class="info file"># File 'lib/jini.rb', line 99</span>
|
|
743
791
|
|
|
744
792
|
<span class='kw'>def</span> <span class='id identifier rubyid_add_attrs'>add_attrs</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
|
745
793
|
<span class='const'><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Jini#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='ivar'>@head</span><span class='embexpr_end'>}</span><span class='tstring_content'>@</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_value'>value</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
|
@@ -813,12 +861,12 @@
|
|
|
813
861
|
<pre class="lines">
|
|
814
862
|
|
|
815
863
|
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
864
|
+
55
|
|
865
|
+
56
|
|
866
|
+
57</pre>
|
|
819
867
|
</td>
|
|
820
868
|
<td>
|
|
821
|
-
<pre class="code"><span class="info file"># File 'lib/jini.rb', line
|
|
869
|
+
<pre class="code"><span class="info file"># File 'lib/jini.rb', line 55</span>
|
|
822
870
|
|
|
823
871
|
<span class='kw'>def</span> <span class='id identifier rubyid_add_node'>add_node</span><span class='lparen'>(</span><span class='id identifier rubyid_node'>node</span><span class='rparen'>)</span>
|
|
824
872
|
<span class='const'><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Jini#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='ivar'>@head</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_node'>node</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
|
@@ -892,12 +940,12 @@
|
|
|
892
940
|
<pre class="lines">
|
|
893
941
|
|
|
894
942
|
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
943
|
+
144
|
|
944
|
+
145
|
|
945
|
+
146</pre>
|
|
898
946
|
</td>
|
|
899
947
|
<td>
|
|
900
|
-
<pre class="code"><span class="info file"># File 'lib/jini.rb', line
|
|
948
|
+
<pre class="code"><span class="info file"># File 'lib/jini.rb', line 144</span>
|
|
901
949
|
|
|
902
950
|
<span class='kw'>def</span> <span class='id identifier rubyid_add_nodes'>add_nodes</span><span class='lparen'>(</span><span class='id identifier rubyid_node'>node</span><span class='rparen'>)</span>
|
|
903
951
|
<span class='const'><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Jini#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='ivar'>@head</span><span class='embexpr_end'>}</span><span class='tstring_content'>//</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_node'>node</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
|
@@ -919,7 +967,7 @@
|
|
|
919
967
|
</h3><div class="docstring">
|
|
920
968
|
<div class="discussion">
|
|
921
969
|
|
|
922
|
-
<p>Addition property in tail Before: ‘../child’ After: ‘../child/property()’</p>
|
|
970
|
+
<p>Addition property in tail. Before: ‘../child’ After: ‘../child/property()’</p>
|
|
923
971
|
|
|
924
972
|
|
|
925
973
|
</div>
|
|
@@ -966,12 +1014,12 @@
|
|
|
966
1014
|
<pre class="lines">
|
|
967
1015
|
|
|
968
1016
|
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
1017
|
+
83
|
|
1018
|
+
84
|
|
1019
|
+
85</pre>
|
|
972
1020
|
</td>
|
|
973
1021
|
<td>
|
|
974
|
-
<pre class="code"><span class="info file"># File 'lib/jini.rb', line
|
|
1022
|
+
<pre class="code"><span class="info file"># File 'lib/jini.rb', line 83</span>
|
|
975
1023
|
|
|
976
1024
|
<span class='kw'>def</span> <span class='id identifier rubyid_add_property'>add_property</span><span class='lparen'>(</span><span class='id identifier rubyid_property'>property</span><span class='rparen'>)</span>
|
|
977
1025
|
<span class='const'><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Jini#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_add_node'>add_node</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_property'>property</span><span class='embexpr_end'>}</span><span class='tstring_content'>()</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
|
|
@@ -1043,13 +1091,13 @@
|
|
|
1043
1091
|
<pre class="lines">
|
|
1044
1092
|
|
|
1045
1093
|
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1094
|
+
135
|
|
1095
|
+
136
|
|
1096
|
+
137
|
|
1097
|
+
138</pre>
|
|
1050
1098
|
</td>
|
|
1051
1099
|
<td>
|
|
1052
|
-
<pre class="code"><span class="info file"># File 'lib/jini.rb', line
|
|
1100
|
+
<pre class="code"><span class="info file"># File 'lib/jini.rb', line 135</span>
|
|
1053
1101
|
|
|
1054
1102
|
<span class='kw'>def</span> <span class='id identifier rubyid_all'>all</span>
|
|
1055
1103
|
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Jini/InvalidPath.html" title="Jini::InvalidPath (class)">InvalidPath</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>You cannot add all tag after attr!</span><span class='tstring_end'>'</span></span> <span class='kw'>if</span> <span class='ivar'>@head</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_eql?'>eql?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>]</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
|
@@ -1142,13 +1190,13 @@
|
|
|
1142
1190
|
<pre class="lines">
|
|
1143
1191
|
|
|
1144
1192
|
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1193
|
+
153
|
|
1194
|
+
154
|
|
1195
|
+
155
|
|
1196
|
+
156</pre>
|
|
1149
1197
|
</td>
|
|
1150
1198
|
<td>
|
|
1151
|
-
<pre class="code"><span class="info file"># File 'lib/jini.rb', line
|
|
1199
|
+
<pre class="code"><span class="info file"># File 'lib/jini.rb', line 153</span>
|
|
1152
1200
|
|
|
1153
1201
|
<span class='kw'>def</span> <span class='id identifier rubyid_at'>at</span><span class='lparen'>(</span><span class='id identifier rubyid_position'>position</span><span class='rparen'>)</span>
|
|
1154
1202
|
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Jini/InvalidPath.html" title="Jini::InvalidPath (class)">InvalidPath</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Cant use at after selection</span><span class='tstring_end'>'</span></span> <span class='kw'>if</span> <span class='ivar'>@head</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>::</span><span class='tstring_end'>'</span></span>
|
|
@@ -1229,12 +1277,12 @@
|
|
|
1229
1277
|
<pre class="lines">
|
|
1230
1278
|
|
|
1231
1279
|
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1280
|
+
189
|
|
1281
|
+
190
|
|
1282
|
+
191</pre>
|
|
1235
1283
|
</td>
|
|
1236
1284
|
<td>
|
|
1237
|
-
<pre class="code"><span class="info file"># File 'lib/jini.rb', line
|
|
1285
|
+
<pre class="code"><span class="info file"># File 'lib/jini.rb', line 189</span>
|
|
1238
1286
|
|
|
1239
1287
|
<span class='kw'>def</span> <span class='id identifier rubyid_gt'>gt</span><span class='lparen'>(</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>
|
|
1240
1288
|
<span class='id identifier rubyid_action_between'>action_between</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>></span><span class='tstring_end'>'</span></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>
|
|
@@ -1314,12 +1362,12 @@
|
|
|
1314
1362
|
<pre class="lines">
|
|
1315
1363
|
|
|
1316
1364
|
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1365
|
+
180
|
|
1366
|
+
181
|
|
1367
|
+
182</pre>
|
|
1320
1368
|
</td>
|
|
1321
1369
|
<td>
|
|
1322
|
-
<pre class="code"><span class="info file"># File 'lib/jini.rb', line
|
|
1370
|
+
<pre class="code"><span class="info file"># File 'lib/jini.rb', line 180</span>
|
|
1323
1371
|
|
|
1324
1372
|
<span class='kw'>def</span> <span class='id identifier rubyid_lt'>lt</span><span class='lparen'>(</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>
|
|
1325
1373
|
<span class='id identifier rubyid_action_between'>action_between</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'><</span><span class='tstring_end'>'</span></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>
|
|
@@ -1327,6 +1375,109 @@
|
|
|
1327
1375
|
</td>
|
|
1328
1376
|
</tr>
|
|
1329
1377
|
</table>
|
|
1378
|
+
</div>
|
|
1379
|
+
|
|
1380
|
+
<div class="method_details ">
|
|
1381
|
+
<h3 class="signature " id="new_attr_value-instance_method">
|
|
1382
|
+
|
|
1383
|
+
#<strong>new_attr_value</strong>(name, value) ⇒ <tt><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></tt>
|
|
1384
|
+
|
|
1385
|
+
|
|
1386
|
+
|
|
1387
|
+
|
|
1388
|
+
|
|
1389
|
+
</h3><div class="docstring">
|
|
1390
|
+
<div class="discussion">
|
|
1391
|
+
|
|
1392
|
+
<p>Replaces <strong>all</strong> attr <strong>values</strong> by name. Before: ‘[@id=“some value”]’ After:</p>
|
|
1393
|
+
<dl class="rdoc-list label-list"><dt>@id=“new value”
|
|
1394
|
+
<dd></dd></dl>
|
|
1395
|
+
|
|
1396
|
+
|
|
1397
|
+
</div>
|
|
1398
|
+
</div>
|
|
1399
|
+
<div class="tags">
|
|
1400
|
+
<p class="tag_title">Parameters:</p>
|
|
1401
|
+
<ul class="param">
|
|
1402
|
+
|
|
1403
|
+
<li>
|
|
1404
|
+
|
|
1405
|
+
<span class='name'>name</span>
|
|
1406
|
+
|
|
1407
|
+
|
|
1408
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
1409
|
+
|
|
1410
|
+
|
|
1411
|
+
|
|
1412
|
+
—
|
|
1413
|
+
<div class='inline'>
|
|
1414
|
+
<p>of attr</p>
|
|
1415
|
+
</div>
|
|
1416
|
+
|
|
1417
|
+
</li>
|
|
1418
|
+
|
|
1419
|
+
<li>
|
|
1420
|
+
|
|
1421
|
+
<span class='name'>value</span>
|
|
1422
|
+
|
|
1423
|
+
|
|
1424
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
1425
|
+
|
|
1426
|
+
|
|
1427
|
+
|
|
1428
|
+
—
|
|
1429
|
+
<div class='inline'>
|
|
1430
|
+
<p>upd value</p>
|
|
1431
|
+
</div>
|
|
1432
|
+
|
|
1433
|
+
</li>
|
|
1434
|
+
|
|
1435
|
+
</ul>
|
|
1436
|
+
|
|
1437
|
+
<p class="tag_title">Returns:</p>
|
|
1438
|
+
<ul class="return">
|
|
1439
|
+
|
|
1440
|
+
<li>
|
|
1441
|
+
|
|
1442
|
+
|
|
1443
|
+
<span class='type'>(<tt><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></tt>)</span>
|
|
1444
|
+
|
|
1445
|
+
|
|
1446
|
+
|
|
1447
|
+
—
|
|
1448
|
+
<div class='inline'>
|
|
1449
|
+
<p>updated</p>
|
|
1450
|
+
</div>
|
|
1451
|
+
|
|
1452
|
+
</li>
|
|
1453
|
+
|
|
1454
|
+
</ul>
|
|
1455
|
+
|
|
1456
|
+
</div><table class="source_code">
|
|
1457
|
+
<tr>
|
|
1458
|
+
<td>
|
|
1459
|
+
<pre class="lines">
|
|
1460
|
+
|
|
1461
|
+
|
|
1462
|
+
124
|
|
1463
|
+
125
|
|
1464
|
+
126
|
|
1465
|
+
127
|
|
1466
|
+
128
|
|
1467
|
+
129</pre>
|
|
1468
|
+
</td>
|
|
1469
|
+
<td>
|
|
1470
|
+
<pre class="code"><span class="info file"># File 'lib/jini.rb', line 124</span>
|
|
1471
|
+
|
|
1472
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_new_attr_value'>new_attr_value</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
|
1473
|
+
<span class='id identifier rubyid_n_rex'>n_rex</span> <span class='op'>=</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>(\[@?</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>="[^"]+"(\[\]+|\]))</span><span class='regexp_end'>/</span></span>
|
|
1474
|
+
<span class='id identifier rubyid_attr'>attr</span> <span class='op'>=</span> <span class='ivar'>@head</span><span class='lbracket'>[</span><span class='id identifier rubyid_n_rex'>n_rex</span><span class='rbracket'>]</span>
|
|
1475
|
+
<span class='id identifier rubyid_attr'>attr</span><span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>"(.*?)"</span><span class='regexp_end'>/</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>\"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_value'>value</span><span class='embexpr_end'>}</span><span class='tstring_content'>\"</span><span class='tstring_end'>"</span></span>
|
|
1476
|
+
<span class='const'><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Jini#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='ivar'>@head</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='id identifier rubyid_n_rex'>n_rex</span><span class='comma'>,</span> <span class='id identifier rubyid_attr'>attr</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_attr'>attr</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
|
1477
|
+
<span class='kw'>end</span></pre>
|
|
1478
|
+
</td>
|
|
1479
|
+
</tr>
|
|
1480
|
+
</table>
|
|
1330
1481
|
</div>
|
|
1331
1482
|
|
|
1332
1483
|
<div class="method_details ">
|
|
@@ -1409,12 +1560,12 @@
|
|
|
1409
1560
|
<pre class="lines">
|
|
1410
1561
|
|
|
1411
1562
|
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1563
|
+
171
|
|
1564
|
+
172
|
|
1565
|
+
173</pre>
|
|
1415
1566
|
</td>
|
|
1416
1567
|
<td>
|
|
1417
|
-
<pre class="code"><span class="info file"># File 'lib/jini.rb', line
|
|
1568
|
+
<pre class="code"><span class="info file"># File 'lib/jini.rb', line 171</span>
|
|
1418
1569
|
|
|
1419
1570
|
<span class='kw'>def</span> <span class='kw'>or</span><span class='lparen'>(</span><span class='id identifier rubyid_alpha'>alpha</span><span class='comma'>,</span> <span class='id identifier rubyid_beta'>beta</span><span class='rparen'>)</span>
|
|
1420
1571
|
<span class='id identifier rubyid_action_between'>action_between</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>|</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='id identifier rubyid_alpha'>alpha</span><span class='comma'>,</span> <span class='id identifier rubyid_beta'>beta</span><span class='rparen'>)</span>
|
|
@@ -1436,7 +1587,7 @@
|
|
|
1436
1587
|
</h3><div class="docstring">
|
|
1437
1588
|
<div class="discussion">
|
|
1438
1589
|
|
|
1439
|
-
<p>Removes attr by name before:
|
|
1590
|
+
<p>Removes attr by name. before: ‘/parent/child [@k=“v”]’ after: ‘/parent/child’</p>
|
|
1440
1591
|
|
|
1441
1592
|
|
|
1442
1593
|
</div>
|
|
@@ -1488,18 +1639,18 @@
|
|
|
1488
1639
|
<pre class="lines">
|
|
1489
1640
|
|
|
1490
1641
|
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1642
|
+
110
|
|
1643
|
+
111
|
|
1644
|
+
112
|
|
1645
|
+
113
|
|
1646
|
+
114</pre>
|
|
1496
1647
|
</td>
|
|
1497
1648
|
<td>
|
|
1498
|
-
<pre class="code"><span class="info file"># File 'lib/jini.rb', line
|
|
1649
|
+
<pre class="code"><span class="info file"># File 'lib/jini.rb', line 110</span>
|
|
1499
1650
|
|
|
1500
1651
|
<span class='kw'>def</span> <span class='id identifier rubyid_remove_attr'>remove_attr</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span>
|
|
1501
1652
|
<span class='const'><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Jini#initialize (method)">new</a></span></span><span class='lparen'>(</span>
|
|
1502
|
-
<span class='id identifier
|
|
1653
|
+
<span class='id identifier rubyid_purge_head'>purge_head</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>(\[@?</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'>="[^"]+"(\[\]+|\]))</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span>
|
|
1503
1654
|
<span class='rparen'>)</span>
|
|
1504
1655
|
<span class='kw'>end</span></pre>
|
|
1505
1656
|
</td>
|
|
@@ -1571,18 +1722,101 @@
|
|
|
1571
1722
|
<pre class="lines">
|
|
1572
1723
|
|
|
1573
1724
|
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
132
|
|
1578
|
-
133</pre>
|
|
1725
|
+
62
|
|
1726
|
+
63
|
|
1727
|
+
64</pre>
|
|
1579
1728
|
</td>
|
|
1580
1729
|
<td>
|
|
1581
|
-
<pre class="code"><span class="info file"># File 'lib/jini.rb', line
|
|
1730
|
+
<pre class="code"><span class="info file"># File 'lib/jini.rb', line 62</span>
|
|
1582
1731
|
|
|
1583
1732
|
<span class='kw'>def</span> <span class='id identifier rubyid_remove_node'>remove_node</span><span class='lparen'>(</span><span class='id identifier rubyid_node'>node</span><span class='rparen'>)</span>
|
|
1733
|
+
<span class='const'><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Jini#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_purge_head'>purge_head</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_node'>node</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
1734
|
+
<span class='kw'>end</span></pre>
|
|
1735
|
+
</td>
|
|
1736
|
+
</tr>
|
|
1737
|
+
</table>
|
|
1738
|
+
</div>
|
|
1739
|
+
|
|
1740
|
+
<div class="method_details ">
|
|
1741
|
+
<h3 class="signature " id="replace_node-instance_method">
|
|
1742
|
+
|
|
1743
|
+
#<strong>replace_node</strong>(origin, new) ⇒ <tt>Object</tt>
|
|
1744
|
+
|
|
1745
|
+
|
|
1746
|
+
|
|
1747
|
+
|
|
1748
|
+
|
|
1749
|
+
</h3><div class="docstring">
|
|
1750
|
+
<div class="discussion">
|
|
1751
|
+
|
|
1752
|
+
<p>This method replaces <strong>all</strong> origins to new</p>
|
|
1753
|
+
|
|
1754
|
+
|
|
1755
|
+
</div>
|
|
1756
|
+
</div>
|
|
1757
|
+
<div class="tags">
|
|
1758
|
+
<p class="tag_title">Parameters:</p>
|
|
1759
|
+
<ul class="param">
|
|
1760
|
+
|
|
1761
|
+
<li>
|
|
1762
|
+
|
|
1763
|
+
<span class='name'>origin</span>
|
|
1764
|
+
|
|
1765
|
+
|
|
1766
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
1767
|
+
|
|
1768
|
+
|
|
1769
|
+
|
|
1770
|
+
—
|
|
1771
|
+
<div class='inline'>
|
|
1772
|
+
<p>node</p>
|
|
1773
|
+
</div>
|
|
1774
|
+
|
|
1775
|
+
</li>
|
|
1776
|
+
|
|
1777
|
+
<li>
|
|
1778
|
+
|
|
1779
|
+
<span class='name'>new</span>
|
|
1780
|
+
|
|
1781
|
+
|
|
1782
|
+
<span class='type'>(<tt>String</tt>)</span>
|
|
1783
|
+
|
|
1784
|
+
|
|
1785
|
+
|
|
1786
|
+
—
|
|
1787
|
+
<div class='inline'>
|
|
1788
|
+
<p>node</p>
|
|
1789
|
+
</div>
|
|
1790
|
+
|
|
1791
|
+
</li>
|
|
1792
|
+
|
|
1793
|
+
</ul>
|
|
1794
|
+
|
|
1795
|
+
|
|
1796
|
+
</div><table class="source_code">
|
|
1797
|
+
<tr>
|
|
1798
|
+
<td>
|
|
1799
|
+
<pre class="lines">
|
|
1800
|
+
|
|
1801
|
+
|
|
1802
|
+
69
|
|
1803
|
+
70
|
|
1804
|
+
71
|
|
1805
|
+
72
|
|
1806
|
+
73
|
|
1807
|
+
74
|
|
1808
|
+
75
|
|
1809
|
+
76</pre>
|
|
1810
|
+
</td>
|
|
1811
|
+
<td>
|
|
1812
|
+
<pre class="code"><span class="info file"># File 'lib/jini.rb', line 69</span>
|
|
1813
|
+
|
|
1814
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_replace_node'>replace_node</span><span class='lparen'>(</span><span class='id identifier rubyid_origin'>origin</span><span class='comma'>,</span> <span class='id identifier rubyid_new'>new</span><span class='rparen'>)</span>
|
|
1584
1815
|
<span class='const'><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Jini#initialize (method)">new</a></span></span><span class='lparen'>(</span>
|
|
1585
|
-
<span class='
|
|
1816
|
+
<span class='ivar'>@head</span>
|
|
1817
|
+
<span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
|
1818
|
+
<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_node'>node</span><span class='op'>|</span> <span class='id identifier rubyid_node'>node</span><span class='period'>.</span><span class='id identifier rubyid_eql?'>eql?</span><span class='lparen'>(</span><span class='id identifier rubyid_origin'>origin</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_new'>new</span> <span class='op'>:</span> <span class='id identifier rubyid_node'>node</span> <span class='rbrace'>}</span>
|
|
1819
|
+
<span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
|
1586
1820
|
<span class='rparen'>)</span>
|
|
1587
1821
|
<span class='kw'>end</span></pre>
|
|
1588
1822
|
</td>
|
|
@@ -1602,7 +1836,7 @@
|
|
|
1602
1836
|
</h3><div class="docstring">
|
|
1603
1837
|
<div class="discussion">
|
|
1604
1838
|
|
|
1605
|
-
<p>Replace all ‘/’ to ‘::’ symbols if path doesn’t contain invalid symbols for selection</p>
|
|
1839
|
+
<p>Replace all ‘/’ to ‘::’ symbols. if path doesn’t contain invalid symbols for selection</p>
|
|
1606
1840
|
|
|
1607
1841
|
|
|
1608
1842
|
</div>
|
|
@@ -1652,20 +1886,16 @@
|
|
|
1652
1886
|
<pre class="lines">
|
|
1653
1887
|
|
|
1654
1888
|
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
123
|
|
1660
|
-
124</pre>
|
|
1889
|
+
162
|
|
1890
|
+
163
|
|
1891
|
+
164
|
|
1892
|
+
165</pre>
|
|
1661
1893
|
</td>
|
|
1662
1894
|
<td>
|
|
1663
|
-
<pre class="code"><span class="info file"># File 'lib/jini.rb', line
|
|
1895
|
+
<pre class="code"><span class="info file"># File 'lib/jini.rb', line 162</span>
|
|
1664
1896
|
|
|
1665
1897
|
<span class='kw'>def</span> <span class='id identifier rubyid_selection'>selection</span>
|
|
1666
|
-
<span class='
|
|
1667
|
-
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Jini/InvalidPath.html" title="Jini::InvalidPath (class)">InvalidPath</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Cannot select, path contains bad symbols</span><span class='tstring_end'>'</span></span>
|
|
1668
|
-
<span class='kw'>end</span>
|
|
1898
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Jini/InvalidPath.html" title="Jini::InvalidPath (class)">InvalidPath</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Cannot select, path contains bad symbols</span><span class='tstring_end'>'</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_bad_symbols?'>bad_symbols?</span> <span class='ivar'>@head</span>
|
|
1669
1899
|
<span class='const'><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Jini#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='ivar'>@head</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>::</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
|
|
1670
1900
|
<span class='kw'>end</span></pre>
|
|
1671
1901
|
</td>
|
|
@@ -1739,22 +1969,14 @@
|
|
|
1739
1969
|
47
|
|
1740
1970
|
48
|
|
1741
1971
|
49
|
|
1742
|
-
50
|
|
1743
|
-
51
|
|
1744
|
-
52
|
|
1745
|
-
53
|
|
1746
|
-
54</pre>
|
|
1972
|
+
50</pre>
|
|
1747
1973
|
</td>
|
|
1748
1974
|
<td>
|
|
1749
1975
|
<pre class="code"><span class="info file"># File 'lib/jini.rb', line 46</span>
|
|
1750
1976
|
|
|
1751
1977
|
<span class='kw'>def</span> <span class='id identifier rubyid_to_s'>to_s</span>
|
|
1752
1978
|
<span class='id identifier rubyid_copy'>copy</span> <span class='op'>=</span> <span class='ivar'>@head</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>%r{</span><span class='tstring_content'>//|/</span><span class='regexp_end'>}</span></span><span class='rparen'>)</span>
|
|
1753
|
-
<span class='id identifier rubyid_copy'>copy</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span
|
|
1754
|
-
<span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_node'>node</span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>[|]|@|=|>|<</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='id identifier rubyid_node'>node</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'> </span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
|
1755
|
-
<span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="Jini/InvalidPath.html" title="Jini::InvalidPath (class)">InvalidPath</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Nodes can't contain spaces: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_node'>node</span><span class='embexpr_end'>}</span><span class='tstring_content'> – contain space.</span><span class='tstring_end'>"</span></span>
|
|
1756
|
-
<span class='kw'>end</span>
|
|
1757
|
-
<span class='kw'>end</span>
|
|
1979
|
+
<span class='id identifier rubyid_copy'>copy</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span><span class='lparen'>(</span><span class='op'>&</span><span class='id identifier rubyid_method'>method</span><span class='lparen'>(</span><span class='symbol'>:space_check</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
1758
1980
|
<span class='ivar'>@head</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
|
|
1759
1981
|
<span class='kw'>end</span></pre>
|
|
1760
1982
|
</td>
|
|
@@ -1767,7 +1989,7 @@
|
|
|
1767
1989
|
</div>
|
|
1768
1990
|
|
|
1769
1991
|
<div id="footer">
|
|
1770
|
-
Generated on
|
|
1992
|
+
Generated on Sun Sep 18 00:36:17 2022 by
|
|
1771
1993
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
1772
1994
|
0.9.28 (ruby-3.0.0).
|
|
1773
1995
|
</div>
|
data/doc/_index.html
CHANGED
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
</div>
|
|
113
113
|
|
|
114
114
|
<div id="footer">
|
|
115
|
-
Generated on
|
|
115
|
+
Generated on Sun Sep 18 00:36:17 2022 by
|
|
116
116
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
117
117
|
0.9.28 (ruby-3.0.0).
|
|
118
118
|
</div>
|
data/doc/file.README.html
CHANGED
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
|
|
62
62
|
<p><a href="https://badge.fury.io/rb/jini"><img src="https://badge.fury.io/rb/jini.svg" alt="Gem Version" /></a></p>
|
|
63
63
|
|
|
64
|
-
<p>The class <a href="https://www.rubydoc.info/gems/jini/0.0.
|
|
64
|
+
<p>The class <a href="https://www.rubydoc.info/gems/jini/0.0.9/Jini"><code>Jini</code></a> helps you build a XPATH.</p>
|
|
65
65
|
|
|
66
66
|
<p><code>ruby
|
|
67
67
|
require 'jini'
|
|
@@ -75,7 +75,7 @@ xpath = Jini
|
|
|
75
75
|
puts(xpath) # -> xpath: /parent[@key="value"]
|
|
76
76
|
</code></p>
|
|
77
77
|
|
|
78
|
-
<p>The full list of methods is <a href="https://www.rubydoc.info/gems/jini/0.0.
|
|
78
|
+
<p>The full list of methods is <a href="https://www.rubydoc.info/gems/jini/0.0.9">here</a>.</p>
|
|
79
79
|
|
|
80
80
|
<p>Install it:</p>
|
|
81
81
|
|
|
@@ -94,7 +94,7 @@ is <em>building</em> XPATHs.</p>
|
|
|
94
94
|
</div></div>
|
|
95
95
|
|
|
96
96
|
<div id="footer">
|
|
97
|
-
Generated on
|
|
97
|
+
Generated on Sun Sep 18 00:36:17 2022 by
|
|
98
98
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
99
99
|
0.9.28 (ruby-3.0.0).
|
|
100
100
|
</div>
|
data/doc/index.html
CHANGED
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
|
|
62
62
|
<p><a href="https://badge.fury.io/rb/jini"><img src="https://badge.fury.io/rb/jini.svg" alt="Gem Version" /></a></p>
|
|
63
63
|
|
|
64
|
-
<p>The class <a href="https://www.rubydoc.info/gems/jini/0.0.
|
|
64
|
+
<p>The class <a href="https://www.rubydoc.info/gems/jini/0.0.9/Jini"><code>Jini</code></a> helps you build a XPATH.</p>
|
|
65
65
|
|
|
66
66
|
<p><code>ruby
|
|
67
67
|
require 'jini'
|
|
@@ -75,7 +75,7 @@ xpath = Jini
|
|
|
75
75
|
puts(xpath) # -> xpath: /parent[@key="value"]
|
|
76
76
|
</code></p>
|
|
77
77
|
|
|
78
|
-
<p>The full list of methods is <a href="https://www.rubydoc.info/gems/jini/0.0.
|
|
78
|
+
<p>The full list of methods is <a href="https://www.rubydoc.info/gems/jini/0.0.9">here</a>.</p>
|
|
79
79
|
|
|
80
80
|
<p>Install it:</p>
|
|
81
81
|
|
|
@@ -94,7 +94,7 @@ is <em>building</em> XPATHs.</p>
|
|
|
94
94
|
</div></div>
|
|
95
95
|
|
|
96
96
|
<div id="footer">
|
|
97
|
-
Generated on
|
|
97
|
+
Generated on Sun Sep 18 00:36:17 2022 by
|
|
98
98
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
99
99
|
0.9.28 (ruby-3.0.0).
|
|
100
100
|
</div>
|
data/doc/method_list.html
CHANGED
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
|
|
127
127
|
<li class="odd ">
|
|
128
128
|
<div class="item">
|
|
129
|
-
<span class='object_link'><a href="Jini.html#
|
|
129
|
+
<span class='object_link'><a href="Jini.html#new_attr_value-instance_method" title="Jini#new_attr_value (method)">#new_attr_value</a></span>
|
|
130
130
|
<small>Jini</small>
|
|
131
131
|
</div>
|
|
132
132
|
</li>
|
|
@@ -134,13 +134,21 @@
|
|
|
134
134
|
|
|
135
135
|
<li class="even ">
|
|
136
136
|
<div class="item">
|
|
137
|
-
<span class='object_link'><a href="Jini.html#
|
|
137
|
+
<span class='object_link'><a href="Jini.html#or-instance_method" title="Jini#or (method)">#or</a></span>
|
|
138
138
|
<small>Jini</small>
|
|
139
139
|
</div>
|
|
140
140
|
</li>
|
|
141
141
|
|
|
142
142
|
|
|
143
143
|
<li class="odd ">
|
|
144
|
+
<div class="item">
|
|
145
|
+
<span class='object_link'><a href="Jini.html#remove_attr-instance_method" title="Jini#remove_attr (method)">#remove_attr</a></span>
|
|
146
|
+
<small>Jini</small>
|
|
147
|
+
</div>
|
|
148
|
+
</li>
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
<li class="even ">
|
|
144
152
|
<div class="item">
|
|
145
153
|
<span class='object_link'><a href="Jini.html#remove_node-instance_method" title="Jini#remove_node (method)">#remove_node</a></span>
|
|
146
154
|
<small>Jini</small>
|
|
@@ -148,6 +156,14 @@
|
|
|
148
156
|
</li>
|
|
149
157
|
|
|
150
158
|
|
|
159
|
+
<li class="odd ">
|
|
160
|
+
<div class="item">
|
|
161
|
+
<span class='object_link'><a href="Jini.html#replace_node-instance_method" title="Jini#replace_node (method)">#replace_node</a></span>
|
|
162
|
+
<small>Jini</small>
|
|
163
|
+
</div>
|
|
164
|
+
</li>
|
|
165
|
+
|
|
166
|
+
|
|
151
167
|
<li class="even ">
|
|
152
168
|
<div class="item">
|
|
153
169
|
<span class='object_link'><a href="Jini.html#selection-instance_method" title="Jini#selection (method)">#selection</a></span>
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
</div>
|
|
101
101
|
|
|
102
102
|
<div id="footer">
|
|
103
|
-
Generated on
|
|
103
|
+
Generated on Sun Sep 18 00:36:17 2022 by
|
|
104
104
|
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
105
105
|
0.9.28 (ruby-3.0.0).
|
|
106
106
|
</div>
|
data/jini.gemspec
CHANGED
|
@@ -5,7 +5,7 @@ Gem::Specification.new do |s|
|
|
|
5
5
|
s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
|
|
6
6
|
s.required_ruby_version = '>=3.0.0'
|
|
7
7
|
s.name = 'jini'
|
|
8
|
-
s.version = '0.0
|
|
8
|
+
s.version = '0.1.0'
|
|
9
9
|
s.license = 'MIT'
|
|
10
10
|
s.summary = 'Simple Immutable Ruby XPATH Builder'
|
|
11
11
|
s.description = 'Class Jini helps you build a XPATH and then modify its parts via a simple fluent interface.'
|
data/lib/jini.rb
CHANGED
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
#
|
|
27
27
|
# require 'jini'
|
|
28
28
|
# xpath = Jini.new('parent')
|
|
29
|
-
# .
|
|
30
|
-
# .
|
|
31
|
-
# .to_s //
|
|
29
|
+
# .add_node('child')
|
|
30
|
+
# .add_attr('toy', 'plane')
|
|
31
|
+
# .to_s // parent/child[@toy="plane"]
|
|
32
32
|
class Jini
|
|
33
33
|
# When path not valid
|
|
34
34
|
class InvalidPath < StandardError; end
|
|
@@ -45,11 +45,7 @@ class Jini
|
|
|
45
45
|
# @raise [InvalidPath] if contain spaces in simple nodes
|
|
46
46
|
def to_s
|
|
47
47
|
copy = @head.split(%r{//|/})
|
|
48
|
-
copy.each
|
|
49
|
-
if !node.match(/[|]|@|=|>|</) && node.include?(' ')
|
|
50
|
-
raise InvalidPath, "Nodes can't contain spaces: #{node} – contain space."
|
|
51
|
-
end
|
|
52
|
-
end
|
|
48
|
+
copy.each(&method(:space_check))
|
|
53
49
|
@head.to_s
|
|
54
50
|
end
|
|
55
51
|
|
|
@@ -60,7 +56,26 @@ class Jini
|
|
|
60
56
|
Jini.new("#{@head}/#{node}")
|
|
61
57
|
end
|
|
62
58
|
|
|
63
|
-
#
|
|
59
|
+
# Removes node by name
|
|
60
|
+
# @param node [String] name of node for removal
|
|
61
|
+
# @return [Jini] without a node
|
|
62
|
+
def remove_node(node)
|
|
63
|
+
Jini.new(purge_head("/#{node}"))
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# This method replaces *all* origins to new
|
|
67
|
+
# @param [String] origin node
|
|
68
|
+
# @param [String] new node
|
|
69
|
+
def replace_node(origin, new)
|
|
70
|
+
Jini.new(
|
|
71
|
+
@head
|
|
72
|
+
.split('/')
|
|
73
|
+
.map! { |node| node.eql?(origin) ? new : node }
|
|
74
|
+
.join('/')
|
|
75
|
+
)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# Addition property in tail.
|
|
64
79
|
# Before: '../child'
|
|
65
80
|
# After: '../child/property()'
|
|
66
81
|
# @param property [String]
|
|
@@ -78,13 +93,41 @@ class Jini
|
|
|
78
93
|
Jini.new("#{@head}[@#{key}=\"#{value}\"]")
|
|
79
94
|
end
|
|
80
95
|
|
|
81
|
-
# Adds '@value' to tail
|
|
96
|
+
# Adds '@value' to tail.
|
|
82
97
|
# @param value [String] with value attr
|
|
83
98
|
# @return [Jini] object
|
|
84
99
|
def add_attrs(value)
|
|
85
100
|
Jini.new("#{@head}@#{value}")
|
|
86
101
|
end
|
|
87
102
|
|
|
103
|
+
# Removes attr by name.
|
|
104
|
+
# before:
|
|
105
|
+
# '/parent/child [@k="v"]'
|
|
106
|
+
# after:
|
|
107
|
+
# '/parent/child'
|
|
108
|
+
# @param [String] name of attr
|
|
109
|
+
# @return [Jini] without an attr
|
|
110
|
+
def remove_attr(name)
|
|
111
|
+
Jini.new(
|
|
112
|
+
purge_head(/(\[@?#{name}="[^"]+"(\[\]+|\]))/)
|
|
113
|
+
)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# Replaces *all* attr *values* by name.
|
|
117
|
+
# Before:
|
|
118
|
+
# '[@id="some value"]'
|
|
119
|
+
# After:
|
|
120
|
+
# [@id="new value"]
|
|
121
|
+
# @param name [String] of attr
|
|
122
|
+
# @param value [String] upd value
|
|
123
|
+
# @return [Jini] updated
|
|
124
|
+
def new_attr_value(name, value)
|
|
125
|
+
n_rex = /(\[@?#{name}="[^"]+"(\[\]+|\]))/
|
|
126
|
+
attr = @head[n_rex]
|
|
127
|
+
attr[/"(.*?)"/] = "\"#{value}\""
|
|
128
|
+
Jini.new(@head.gsub(n_rex, attr)) unless attr.nil?
|
|
129
|
+
end
|
|
130
|
+
|
|
88
131
|
# Xpath with all elements.
|
|
89
132
|
# Addition an '*' to tail of xpath
|
|
90
133
|
# @return [Jini] object
|
|
@@ -112,39 +155,15 @@ class Jini
|
|
|
112
155
|
Jini.new("#{@head}[#{position}]")
|
|
113
156
|
end
|
|
114
157
|
|
|
115
|
-
# Replace all '/' to '::' symbols
|
|
158
|
+
# Replace all '/' to '::' symbols.
|
|
116
159
|
# if path doesn't contain invalid symbols for selection
|
|
117
160
|
# @return [Jini] selection
|
|
118
161
|
# @raise [InvalidPath] when path can't present with select
|
|
119
162
|
def selection
|
|
120
|
-
|
|
121
|
-
raise InvalidPath, 'Cannot select, path contains bad symbols'
|
|
122
|
-
end
|
|
163
|
+
raise InvalidPath, 'Cannot select, path contains bad symbols' if bad_symbols? @head
|
|
123
164
|
Jini.new(@head.gsub('/', '::').to_s)
|
|
124
165
|
end
|
|
125
166
|
|
|
126
|
-
# Removes node by name
|
|
127
|
-
# @param node [String] name of node for removal
|
|
128
|
-
# @return [Jini] without a node
|
|
129
|
-
def remove_node(node)
|
|
130
|
-
Jini.new(
|
|
131
|
-
purge("/#{node}")
|
|
132
|
-
)
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
# Removes attr by name
|
|
136
|
-
# before:
|
|
137
|
-
# '/parent/child[@k="v"]'
|
|
138
|
-
# after:
|
|
139
|
-
# '/parent/child'
|
|
140
|
-
# @param [String] name of attr
|
|
141
|
-
# @return [Jini] without an attr
|
|
142
|
-
def remove_attr(name)
|
|
143
|
-
Jini.new(
|
|
144
|
-
purge(/(\[@?#{name}="[^"]+"(\[\]+|\]))/)
|
|
145
|
-
)
|
|
146
|
-
end
|
|
147
|
-
|
|
148
167
|
# Adds '[alpha | beta]' in tail.
|
|
149
168
|
# @param [String] alpha statement
|
|
150
169
|
# @param [String] beta statement
|
|
@@ -173,13 +192,33 @@ class Jini
|
|
|
173
192
|
|
|
174
193
|
private
|
|
175
194
|
|
|
195
|
+
# @param node [String] node for check
|
|
196
|
+
def space_check(node)
|
|
197
|
+
raise InvalidPath, "Nodes can't contain spaces: #{node} – contain space." if valid? node
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
# regex: '[' or ']' or '@' or '//'
|
|
201
|
+
# @param node [String]
|
|
202
|
+
# @return node [Boolean] matching regex
|
|
203
|
+
def bad_symbols?(node)
|
|
204
|
+
node.match %r{[|]|@|//}
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
# regex: '[' or ']' or '@' or '=' or '<' or '>'
|
|
208
|
+
# @param node [String] node for check
|
|
209
|
+
# @return node [Boolean] matching regex
|
|
210
|
+
def valid?(node)
|
|
211
|
+
!node.match(/[|]|@|=|>|</) && node.include?(' ')
|
|
212
|
+
end
|
|
213
|
+
|
|
176
214
|
# Some action between two statements.
|
|
177
215
|
def action_between(action, alpha, beta)
|
|
178
216
|
Jini.new("#{@head}[#{alpha} #{action} #{beta}]")
|
|
179
217
|
end
|
|
180
218
|
|
|
219
|
+
# Purging head from token.
|
|
181
220
|
# @param [Regexp | String] token to be purged from the head
|
|
182
|
-
def
|
|
221
|
+
def purge_head(token)
|
|
183
222
|
@head.gsub(token, '')
|
|
184
223
|
end
|
|
185
224
|
end
|
data/test/jini_test.rb
CHANGED
|
@@ -223,4 +223,53 @@ class JiniTest < Minitest::Test
|
|
|
223
223
|
.to_s
|
|
224
224
|
end
|
|
225
225
|
end
|
|
226
|
+
|
|
227
|
+
def test_replace_node_single
|
|
228
|
+
assert_equal(
|
|
229
|
+
'parent/child/toy/child/kek',
|
|
230
|
+
Jini.new(PARENT)
|
|
231
|
+
.add_node(CHILD)
|
|
232
|
+
.add_node('toy')
|
|
233
|
+
.add_node(CHILD)
|
|
234
|
+
.add_node('nonkek')
|
|
235
|
+
.replace_node('nonkek', 'kek')
|
|
236
|
+
.to_s
|
|
237
|
+
)
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
def test_replace_node_multi
|
|
241
|
+
assert_equal(
|
|
242
|
+
'parent/wife/toy/wife',
|
|
243
|
+
Jini.new(PARENT)
|
|
244
|
+
.add_node(CHILD)
|
|
245
|
+
.add_node('toy')
|
|
246
|
+
.add_node(CHILD)
|
|
247
|
+
.replace_node(CHILD, 'wife')
|
|
248
|
+
.to_s
|
|
249
|
+
)
|
|
250
|
+
end
|
|
251
|
+
|
|
252
|
+
def test_replace_node_with_attr
|
|
253
|
+
assert_equal(
|
|
254
|
+
'parent/wife/toy[@material="plastic"]/wife',
|
|
255
|
+
Jini.new(PARENT)
|
|
256
|
+
.add_node(CHILD)
|
|
257
|
+
.add_node('toy')
|
|
258
|
+
.add_attr('material', 'plastic')
|
|
259
|
+
.add_node(CHILD)
|
|
260
|
+
.replace_node(CHILD, 'wife')
|
|
261
|
+
.to_s
|
|
262
|
+
)
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
def test_replace_attr
|
|
266
|
+
assert_equal(
|
|
267
|
+
'parent/child[@toy="car"]',
|
|
268
|
+
Jini.new(PARENT)
|
|
269
|
+
.add_node(CHILD)
|
|
270
|
+
.add_attr('toy', 'plane')
|
|
271
|
+
.new_attr_value('toy', 'car')
|
|
272
|
+
.to_s
|
|
273
|
+
)
|
|
274
|
+
end
|
|
226
275
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jini
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0
|
|
4
|
+
version: 0.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ivan Ivanchuck
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-09-
|
|
11
|
+
date: 2022-09-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: minitest
|