jini 0.0.6 → 0.0.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 61eae2c7e4b7a6207575203926cae305f1b5444a4cb9bc75de67e7854fa9153f
4
- data.tar.gz: 6e5cd9f4f723b2c6e375fc246b658822dbbb5c567df6cfbcfae0b90876ef8e05
3
+ metadata.gz: 5c4276388f8fa9d2ff167b085b61849cb2c394f03cb4d25232f825caba82aa3c
4
+ data.tar.gz: 14d9de0e18ca0e308b836f85da637b73de42cd023f0b58d2b19f4e267361f54b
5
5
  SHA512:
6
- metadata.gz: c57da02706d781212209e27527286bbdf79e1f09acff48f85195d8e0d60c37c90bc35ab3ba4eb36412eb17f6cae532270082a394f9c1c0a8a53fc0d7e4845bb2
7
- data.tar.gz: 5c5dd9f6110844037b9b318e855dbc04d996154edb0f617958b8ce4a868d40128647cb4566b5b4708c7d1e38dee28a6590e5d42f6ec9d401dbc9d413985a51b3
6
+ metadata.gz: ff5fb62653c5b87532c2deac5991db58bb1e10a8ddbdefa341c407644f50b25bff8ef50a2524db5b7b70bc7171c019826cf99d8e3615a8e4c3049fd3f68a999b
7
+ data.tar.gz: 8139e0995cc1ef62e491d7407d3a9d7e7827daebbab965e8b04896cd95028d441cfe9497ac3e1dd9a1d08094464e294c1fe1f2113c57b9e96d84d73e838ac139
data/.yardoc/checksums CHANGED
@@ -1 +1 @@
1
- lib/jini.rb 99e48607b8e42b6ecf819e376c1d88e23f8ac2ed
1
+ lib/jini.rb aa45175d922be503e56fdbeaa14104ccb3dcfbb1
data/.yardoc/object_types CHANGED
Binary file
Binary file
data/README.md CHANGED
@@ -8,11 +8,12 @@ The class [`Jini`](https://www.rubydoc.info/gems/jini/0.0.5/Jini) helps you buil
8
8
  require 'jini'
9
9
  xpath = Jini
10
10
  .new
11
- .add_path('parent') # addition a path node
12
- .add_path('child') # addition a path node
11
+ .add_node('parent') # addition a path node
12
+ .add_node('child') # addition a path node
13
13
  .add_attr('key', 'value') # addition an attribute
14
+ .remove_node('child') # removes attr by key
14
15
  .to_s # convert it to a string
15
- # -> xpath: /parent/child[@key="value"]
16
+ puts(xpath) # -> xpath: /parent[@key="value"]
16
17
  ```
17
18
 
18
19
  The full list of methods is [here](https://www.rubydoc.info/gems/jini/0.0.5).
@@ -125,7 +125,7 @@
125
125
  </div>
126
126
 
127
127
  <div id="footer">
128
- Generated on Fri Sep 16 02:11:27 2022 by
128
+ Generated on Fri Sep 16 04:23:03 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
@@ -102,15 +102,15 @@
102
102
  <h2>Overview</h2><div class="docstring">
103
103
  <div class="discussion">
104
104
 
105
- <p>It’s a simple XPATH builder. “‘ require ’jini’ xpath = Jini.new(‘parent’)</p>
105
+ <p>It’s a simple XPATH builder.</p>
106
+
107
+ <p>require ‘jini’ xpath = Jini.new(‘parent’)</p>
106
108
 
107
109
  <pre class="code ruby"><code class="ruby">.add_path(node: &#39;child&#39;)
108
110
  .add_path(node: &#39;toy&#39;)
109
111
  .to_s // body/child/toy
110
112
  </code></pre>
111
113
 
112
- <p>“‘</p>
113
-
114
114
 
115
115
  </div>
116
116
  </div>
@@ -193,7 +193,7 @@
193
193
  <li class="public ">
194
194
  <span class="summary_signature">
195
195
 
196
- <a href="#add_path-instance_method" title="#add_path (instance method)">#<strong>add_path</strong>(node) &#x21d2; Jini </a>
196
+ <a href="#add_node-instance_method" title="#add_node (instance method)">#<strong>add_node</strong>(node) &#x21d2; Jini </a>
197
197
 
198
198
 
199
199
 
@@ -330,7 +330,7 @@
330
330
 
331
331
 
332
332
  <span class="summary_desc"><div class='inline'>
333
- <p>A new instance of Jini.</p>
333
+ <p>Makes new object.</p>
334
334
  </div></span>
335
335
 
336
336
  </li>
@@ -363,7 +363,7 @@
363
363
  <li class="public ">
364
364
  <span class="summary_signature">
365
365
 
366
- <a href="#or-instance_method" title="#or (instance method)">#<strong>or</strong>(first, second) &#x21d2; Jini </a>
366
+ <a href="#or-instance_method" title="#or (instance method)">#<strong>or</strong>(alpha, beta) &#x21d2; Jini </a>
367
367
 
368
368
 
369
369
 
@@ -411,7 +411,7 @@
411
411
  <li class="public ">
412
412
  <span class="summary_signature">
413
413
 
414
- <a href="#remove_path-instance_method" title="#remove_path (instance method)">#<strong>remove_path</strong>(node) &#x21d2; Jini </a>
414
+ <a href="#remove_node-instance_method" title="#remove_node (instance method)">#<strong>remove_node</strong>(node) &#x21d2; Jini </a>
415
415
 
416
416
 
417
417
 
@@ -498,7 +498,7 @@
498
498
  </h3><div class="docstring">
499
499
  <div class="discussion">
500
500
 
501
- <p>Returns a new instance of Jini.</p>
501
+ <p>Makes new object. By default it creates an empty path and you can ignore the head parameter.</p>
502
502
 
503
503
 
504
504
  </div>
@@ -529,12 +529,12 @@
529
529
  <pre class="lines">
530
530
 
531
531
 
532
- 38
533
532
  39
534
- 40</pre>
533
+ 40
534
+ 41</pre>
535
535
  </td>
536
536
  <td>
537
- <pre class="code"><span class="info file"># File 'lib/jini.rb', line 38</span>
537
+ <pre class="code"><span class="info file"># File 'lib/jini.rb', line 39</span>
538
538
 
539
539
  <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_head'>head</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
540
540
  <span class='ivar'>@head</span> <span class='op'>=</span> <span class='id identifier rubyid_head'>head</span>
@@ -615,12 +615,12 @@
615
615
  <pre class="lines">
616
616
 
617
617
 
618
- 83
619
618
  84
620
- 85</pre>
619
+ 85
620
+ 86</pre>
621
621
  </td>
622
622
  <td>
623
- <pre class="code"><span class="info file"># File 'lib/jini.rb', line 83</span>
623
+ <pre class="code"><span class="info file"># File 'lib/jini.rb', line 84</span>
624
624
 
625
625
  <span class='kw'>def</span> <span class='id identifier rubyid_add_all'>add_all</span><span class='lparen'>(</span><span class='id identifier rubyid_node'>node</span><span class='rparen'>)</span>
626
626
  <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'>&quot;</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'>&quot;</span></span><span class='rparen'>)</span>
@@ -710,12 +710,12 @@
710
710
  <pre class="lines">
711
711
 
712
712
 
713
- 60
714
713
  61
715
- 62</pre>
714
+ 62
715
+ 63</pre>
716
716
  </td>
717
717
  <td>
718
- <pre class="code"><span class="info file"># File 'lib/jini.rb', line 60</span>
718
+ <pre class="code"><span class="info file"># File 'lib/jini.rb', line 61</span>
719
719
 
720
720
  <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>
721
721
  <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'>&quot;</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'>=\&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_value'>value</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot;]</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
@@ -726,9 +726,9 @@
726
726
  </div>
727
727
 
728
728
  <div class="method_details ">
729
- <h3 class="signature " id="add_path-instance_method">
729
+ <h3 class="signature " id="add_node-instance_method">
730
730
 
731
- #<strong>add_path</strong>(node) &#x21d2; <tt><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></tt>
731
+ #<strong>add_node</strong>(node) &#x21d2; <tt><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></tt>
732
732
 
733
733
 
734
734
 
@@ -789,14 +789,14 @@
789
789
  <pre class="lines">
790
790
 
791
791
 
792
- 51
793
792
  52
794
- 53</pre>
793
+ 53
794
+ 54</pre>
795
795
  </td>
796
796
  <td>
797
- <pre class="code"><span class="info file"># File 'lib/jini.rb', line 51</span>
797
+ <pre class="code"><span class="info file"># File 'lib/jini.rb', line 52</span>
798
798
 
799
- <span class='kw'>def</span> <span class='id identifier rubyid_add_path'>add_path</span><span class='lparen'>(</span><span class='id identifier rubyid_node'>node</span><span class='rparen'>)</span>
799
+ <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>
800
800
  <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'>&quot;</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'>&quot;</span></span><span class='rparen'>)</span>
801
801
  <span class='kw'>end</span></pre>
802
802
  </td>
@@ -861,17 +861,17 @@
861
861
  <pre class="lines">
862
862
 
863
863
 
864
- 74
865
864
  75
866
865
  76
867
- 77</pre>
866
+ 77
867
+ 78</pre>
868
868
  </td>
869
869
  <td>
870
- <pre class="code"><span class="info file"># File 'lib/jini.rb', line 74</span>
870
+ <pre class="code"><span class="info file"># File 'lib/jini.rb', line 75</span>
871
871
 
872
872
  <span class='kw'>def</span> <span class='id identifier rubyid_all'>all</span>
873
873
  <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'>&#39;</span><span class='tstring_content'>You cannot add all tag after attr!</span><span class='tstring_end'>&#39;</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'>&#39;</span><span class='tstring_content'>]</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
874
- <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_path'>add_path</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>*</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
874
+ <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'>&#39;</span><span class='tstring_content'>*</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
875
875
  <span class='kw'>end</span></pre>
876
876
  </td>
877
877
  </tr>
@@ -942,12 +942,12 @@
942
942
  <pre class="lines">
943
943
 
944
944
 
945
- 67
946
945
  68
947
- 69</pre>
946
+ 69
947
+ 70</pre>
948
948
  </td>
949
949
  <td>
950
- <pre class="code"><span class="info file"># File 'lib/jini.rb', line 67</span>
950
+ <pre class="code"><span class="info file"># File 'lib/jini.rb', line 68</span>
951
951
 
952
952
  <span class='kw'>def</span> <span class='id identifier rubyid_all_attr'>all_attr</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
953
953
  <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'>&quot;</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'>&quot;</span></span><span class='rparen'>)</span>
@@ -1034,13 +1034,13 @@
1034
1034
  <pre class="lines">
1035
1035
 
1036
1036
 
1037
- 91
1038
1037
  92
1039
1038
  93
1040
- 94</pre>
1039
+ 94
1040
+ 95</pre>
1041
1041
  </td>
1042
1042
  <td>
1043
- <pre class="code"><span class="info file"># File 'lib/jini.rb', line 91</span>
1043
+ <pre class="code"><span class="info file"># File 'lib/jini.rb', line 92</span>
1044
1044
 
1045
1045
  <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>
1046
1046
  <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'>&#39;</span><span class='tstring_content'>Cant use at after selection</span><span class='tstring_end'>&#39;</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'>&#39;</span><span class='tstring_content'>::</span><span class='tstring_end'>&#39;</span></span>
@@ -1121,15 +1121,15 @@
1121
1121
  <pre class="lines">
1122
1122
 
1123
1123
 
1124
+ 152
1124
1125
  153
1125
- 154
1126
- 155</pre>
1126
+ 154</pre>
1127
1127
  </td>
1128
1128
  <td>
1129
- <pre class="code"><span class="info file"># File 'lib/jini.rb', line 153</span>
1129
+ <pre class="code"><span class="info file"># File 'lib/jini.rb', line 152</span>
1130
1130
 
1131
1131
  <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>
1132
- <span class='id identifier rubyid_sat'>sat</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>&gt;</span><span class='tstring_end'>&#39;</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>
1132
+ <span class='id identifier rubyid_action_between'>action_between</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>&gt;</span><span class='tstring_end'>&#39;</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>
1133
1133
  <span class='kw'>end</span></pre>
1134
1134
  </td>
1135
1135
  </tr>
@@ -1206,15 +1206,15 @@
1206
1206
  <pre class="lines">
1207
1207
 
1208
1208
 
1209
+ 143
1209
1210
  144
1210
- 145
1211
- 146</pre>
1211
+ 145</pre>
1212
1212
  </td>
1213
1213
  <td>
1214
- <pre class="code"><span class="info file"># File 'lib/jini.rb', line 144</span>
1214
+ <pre class="code"><span class="info file"># File 'lib/jini.rb', line 143</span>
1215
1215
 
1216
1216
  <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>
1217
- <span class='id identifier rubyid_sat'>sat</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>&lt;</span><span class='tstring_end'>&#39;</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>
1217
+ <span class='id identifier rubyid_action_between'>action_between</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>&lt;</span><span class='tstring_end'>&#39;</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>
1218
1218
  <span class='kw'>end</span></pre>
1219
1219
  </td>
1220
1220
  </tr>
@@ -1224,7 +1224,7 @@
1224
1224
  <div class="method_details ">
1225
1225
  <h3 class="signature " id="or-instance_method">
1226
1226
 
1227
- #<strong>or</strong>(first, second) &#x21d2; <tt><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></tt>
1227
+ #<strong>or</strong>(alpha, beta) &#x21d2; <tt><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></tt>
1228
1228
 
1229
1229
 
1230
1230
 
@@ -1244,7 +1244,7 @@
1244
1244
 
1245
1245
  <li>
1246
1246
 
1247
- <span class='name'>first</span>
1247
+ <span class='name'>alpha</span>
1248
1248
 
1249
1249
 
1250
1250
  <span class='type'>(<tt>String</tt>)</span>
@@ -1260,7 +1260,7 @@
1260
1260
 
1261
1261
  <li>
1262
1262
 
1263
- <span class='name'>second</span>
1263
+ <span class='name'>beta</span>
1264
1264
 
1265
1265
 
1266
1266
  <span class='type'>(<tt>String</tt>)</span>
@@ -1301,15 +1301,15 @@
1301
1301
  <pre class="lines">
1302
1302
 
1303
1303
 
1304
+ 134
1304
1305
  135
1305
- 136
1306
- 137</pre>
1306
+ 136</pre>
1307
1307
  </td>
1308
1308
  <td>
1309
- <pre class="code"><span class="info file"># File 'lib/jini.rb', line 135</span>
1309
+ <pre class="code"><span class="info file"># File 'lib/jini.rb', line 134</span>
1310
1310
 
1311
- <span class='kw'>def</span> <span class='kw'>or</span><span class='lparen'>(</span><span class='id identifier rubyid_first'>first</span><span class='comma'>,</span> <span class='id identifier rubyid_second'>second</span><span class='rparen'>)</span>
1312
- <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'>&quot;</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_first'>first</span><span class='embexpr_end'>}</span><span class='tstring_content'>|</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_second'>second</span><span class='embexpr_end'>}</span><span class='tstring_content'>]</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1311
+ <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>
1312
+ <span class='id identifier rubyid_action_between'>action_between</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>|</span><span class='tstring_end'>&#39;</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>
1313
1313
  <span class='kw'>end</span></pre>
1314
1314
  </td>
1315
1315
  </tr>
@@ -1380,26 +1380,18 @@
1380
1380
  <pre class="lines">
1381
1381
 
1382
1382
 
1383
- 121
1384
- 122
1385
- 123
1386
1383
  124
1387
1384
  125
1388
1385
  126
1389
1386
  127
1390
- 128
1391
- 129</pre>
1387
+ 128</pre>
1392
1388
  </td>
1393
1389
  <td>
1394
- <pre class="code"><span class="info file"># File 'lib/jini.rb', line 121</span>
1390
+ <pre class="code"><span class="info file"># File 'lib/jini.rb', line 124</span>
1395
1391
 
1396
1392
  <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>
1397
1393
  <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>
1398
- <span class='ivar'>@head</span>
1399
- <span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span>
1400
- <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'>=&quot;[^&quot;]+&quot;(\[\]+|\]))</span><span class='regexp_end'>/</span></span><span class='comma'>,</span>
1401
- <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span>
1402
- <span class='rparen'>)</span>
1394
+ <span class='id identifier rubyid_purge'>purge</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'>=&quot;[^&quot;]+&quot;(\[\]+|\]))</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span>
1403
1395
  <span class='rparen'>)</span>
1404
1396
  <span class='kw'>end</span></pre>
1405
1397
  </td>
@@ -1408,9 +1400,9 @@
1408
1400
  </div>
1409
1401
 
1410
1402
  <div class="method_details ">
1411
- <h3 class="signature " id="remove_path-instance_method">
1403
+ <h3 class="signature " id="remove_node-instance_method">
1412
1404
 
1413
- #<strong>remove_path</strong>(node) &#x21d2; <tt><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></tt>
1405
+ #<strong>remove_node</strong>(node) &#x21d2; <tt><span class='object_link'><a href="" title="Jini (class)">Jini</a></span></tt>
1414
1406
 
1415
1407
 
1416
1408
 
@@ -1471,15 +1463,19 @@
1471
1463
  <pre class="lines">
1472
1464
 
1473
1465
 
1474
- 110
1475
1466
  111
1476
- 112</pre>
1467
+ 112
1468
+ 113
1469
+ 114
1470
+ 115</pre>
1477
1471
  </td>
1478
1472
  <td>
1479
- <pre class="code"><span class="info file"># File 'lib/jini.rb', line 110</span>
1473
+ <pre class="code"><span class="info file"># File 'lib/jini.rb', line 111</span>
1480
1474
 
1481
- <span class='kw'>def</span> <span class='id identifier rubyid_remove_path'>remove_path</span><span class='lparen'>(</span><span class='id identifier rubyid_node'>node</span><span class='rparen'>)</span>
1482
- <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'>&quot;</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'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
1475
+ <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>
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>
1477
+ <span class='id identifier rubyid_purge'>purge</span><span class='lparen'>(</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_node'>node</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1478
+ <span class='rparen'>)</span>
1483
1479
  <span class='kw'>end</span></pre>
1484
1480
  </td>
1485
1481
  </tr>
@@ -1548,15 +1544,15 @@
1548
1544
  <pre class="lines">
1549
1545
 
1550
1546
 
1551
- 100
1552
1547
  101
1553
1548
  102
1554
1549
  103
1555
1550
  104
1556
- 105</pre>
1551
+ 105
1552
+ 106</pre>
1557
1553
  </td>
1558
1554
  <td>
1559
- <pre class="code"><span class="info file"># File 'lib/jini.rb', line 100</span>
1555
+ <pre class="code"><span class="info file"># File 'lib/jini.rb', line 101</span>
1560
1556
 
1561
1557
  <span class='kw'>def</span> <span class='id identifier rubyid_selection'>selection</span>
1562
1558
  <span class='kw'>if</span> <span class='ivar'>@head</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>[</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='op'>||</span> <span class='ivar'>@head</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>]</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='op'>||</span> <span class='ivar'>@head</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>@</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='op'>||</span> <span class='ivar'>@head</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>//</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
@@ -1613,12 +1609,12 @@
1613
1609
  <pre class="lines">
1614
1610
 
1615
1611
 
1616
- 44
1617
1612
  45
1618
- 46</pre>
1613
+ 46
1614
+ 47</pre>
1619
1615
  </td>
1620
1616
  <td>
1621
- <pre class="code"><span class="info file"># File 'lib/jini.rb', line 44</span>
1617
+ <pre class="code"><span class="info file"># File 'lib/jini.rb', line 45</span>
1622
1618
 
1623
1619
  <span class='kw'>def</span> <span class='id identifier rubyid_to_s'>to_s</span>
1624
1620
  <span class='ivar'>@head</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
@@ -1633,7 +1629,7 @@
1633
1629
  </div>
1634
1630
 
1635
1631
  <div id="footer">
1636
- Generated on Fri Sep 16 02:11:27 2022 by
1632
+ Generated on Fri Sep 16 04:23:03 2022 by
1637
1633
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1638
1634
  0.9.28 (ruby-3.0.0).
1639
1635
  </div>
data/doc/_index.html CHANGED
@@ -112,7 +112,7 @@
112
112
  </div>
113
113
 
114
114
  <div id="footer">
115
- Generated on Fri Sep 16 02:11:27 2022 by
115
+ Generated on Fri Sep 16 04:23:03 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
@@ -67,11 +67,12 @@
67
67
  require 'jini'
68
68
  xpath = Jini
69
69
  .new
70
- .add_path('parent') # addition a path node
71
- .add_path('child') # addition a path node
70
+ .add_node('parent') # addition a path node
71
+ .add_node('child') # addition a path node
72
72
  .add_attr('key', 'value') # addition an attribute
73
+ .remove_node('child') # removes attr by key
73
74
  .to_s # convert it to a string
74
- # -&gt; xpath: /parent/child[@key="value"]
75
+ puts(xpath) # -&gt; xpath: /parent[@key="value"]
75
76
  </code></p>
76
77
 
77
78
  <p>The full list of methods is <a href="https://www.rubydoc.info/gems/jini/0.0.5">here</a>.</p>
@@ -93,7 +94,7 @@ is <em>building</em> XPATHs.</p>
93
94
  </div></div>
94
95
 
95
96
  <div id="footer">
96
- Generated on Fri Sep 16 02:11:27 2022 by
97
+ Generated on Fri Sep 16 04:23:03 2022 by
97
98
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
98
99
  0.9.28 (ruby-3.0.0).
99
100
  </div>
data/doc/index.html CHANGED
@@ -67,11 +67,12 @@
67
67
  require 'jini'
68
68
  xpath = Jini
69
69
  .new
70
- .add_path('parent') # addition a path node
71
- .add_path('child') # addition a path node
70
+ .add_node('parent') # addition a path node
71
+ .add_node('child') # addition a path node
72
72
  .add_attr('key', 'value') # addition an attribute
73
+ .remove_node('child') # removes attr by key
73
74
  .to_s # convert it to a string
74
- # -&gt; xpath: /parent/child[@key="value"]
75
+ puts(xpath) # -&gt; xpath: /parent[@key="value"]
75
76
  </code></p>
76
77
 
77
78
  <p>The full list of methods is <a href="https://www.rubydoc.info/gems/jini/0.0.5">here</a>.</p>
@@ -93,7 +94,7 @@ is <em>building</em> XPATHs.</p>
93
94
  </div></div>
94
95
 
95
96
  <div id="footer">
96
- Generated on Fri Sep 16 02:11:27 2022 by
97
+ Generated on Fri Sep 16 04:23:03 2022 by
97
98
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
98
99
  0.9.28 (ruby-3.0.0).
99
100
  </div>
data/doc/method_list.html CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
  <li class="odd ">
64
64
  <div class="item">
65
- <span class='object_link'><a href="Jini.html#add_path-instance_method" title="Jini#add_path (method)">#add_path</a></span>
65
+ <span class='object_link'><a href="Jini.html#add_node-instance_method" title="Jini#add_node (method)">#add_node</a></span>
66
66
  <small>Jini</small>
67
67
  </div>
68
68
  </li>
@@ -134,7 +134,7 @@
134
134
 
135
135
  <li class="even ">
136
136
  <div class="item">
137
- <span class='object_link'><a href="Jini.html#remove_path-instance_method" title="Jini#remove_path (method)">#remove_path</a></span>
137
+ <span class='object_link'><a href="Jini.html#remove_node-instance_method" title="Jini#remove_node (method)">#remove_node</a></span>
138
138
  <small>Jini</small>
139
139
  </div>
140
140
  </li>
@@ -100,7 +100,7 @@
100
100
  </div>
101
101
 
102
102
  <div id="footer">
103
- Generated on Fri Sep 16 02:11:27 2022 by
103
+ Generated on Fri Sep 16 04:23:03 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.6'
8
+ s.version = '0.0.7'
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
@@ -23,17 +23,18 @@
23
23
  # SOFTWARE.
24
24
 
25
25
  # It's a simple XPATH builder.
26
- # ```
26
+ #
27
27
  # require 'jini'
28
28
  # xpath = Jini.new('parent')
29
29
  # .add_path(node: 'child')
30
30
  # .add_path(node: 'toy')
31
31
  # .to_s // body/child/toy
32
- # ```
33
32
  class Jini
34
33
  # When path not valid
35
34
  class InvalidPath < StandardError; end
36
35
 
36
+ # Makes new object.
37
+ # By default it creates an empty path and you can ignore the head parameter.
37
38
  # @param head [String]
38
39
  def initialize(head = '')
39
40
  @head = head
@@ -48,7 +49,7 @@ class Jini
48
49
  # Additional node for xpath.
49
50
  # @param node [String] node
50
51
  # @return [Jini] object
51
- def add_path(node)
52
+ def add_node(node)
52
53
  Jini.new("#{@head}/#{node}")
53
54
  end
54
55
 
@@ -73,7 +74,7 @@ class Jini
73
74
  # @return [Jini] object
74
75
  def all
75
76
  raise InvalidPath, 'You cannot add all tag after attr!' if @head[-1].eql?(']')
76
- Jini.new(add_path('*').to_s)
77
+ Jini.new(add_node('*').to_s)
77
78
  end
78
79
 
79
80
  # Xpath with all named elements.
@@ -107,8 +108,10 @@ class Jini
107
108
  # Removes node by name
108
109
  # @param node [String] name of node for removal
109
110
  # @return [Jini] without a node
110
- def remove_path(node)
111
- Jini.new(@head.gsub("/#{node}", ''))
111
+ def remove_node(node)
112
+ Jini.new(
113
+ purge("/#{node}")
114
+ )
112
115
  end
113
116
 
114
117
  # Removes attr by name
@@ -120,20 +123,16 @@ class Jini
120
123
  # @return [Jini] without an attr
121
124
  def remove_attr(name)
122
125
  Jini.new(
123
- @head
124
- .gsub(
125
- /(\[@?#{name}="[^"]+"(\[\]+|\]))/,
126
- ''
127
- )
126
+ purge(/(\[@?#{name}="[^"]+"(\[\]+|\]))/)
128
127
  )
129
128
  end
130
129
 
131
130
  # Adds '|' to head
132
- # @param [String] first statement
133
- # @param [String] second statement
131
+ # @param [String] alpha statement
132
+ # @param [String] beta statement
134
133
  # @return [Jini] with Jini '[first|second]' on tail
135
- def or(first, second)
136
- Jini.new("#{@head}[#{first}|#{second}]")
134
+ def or(alpha, beta)
135
+ action_between('|', alpha, beta)
137
136
  end
138
137
 
139
138
  # Less than.
@@ -142,7 +141,7 @@ class Jini
142
141
  # @param [Object] value
143
142
  # @return [Jini]
144
143
  def lt(key, value)
145
- sat('<', key, value)
144
+ action_between('<', key, value)
146
145
  end
147
146
 
148
147
  # Greater than.
@@ -151,13 +150,18 @@ class Jini
151
150
  # @param [Object] value
152
151
  # @return [Jini]
153
152
  def gt(key, value)
154
- sat('>', key, value)
153
+ action_between('>', key, value)
155
154
  end
156
155
 
157
156
  private
158
157
 
159
- # Some action than.
160
- def sat(action, key, value)
161
- Jini.new("#{@head}[#{key} #{action} #{value}]")
158
+ # Some action between two statements.
159
+ def action_between(action, alpha, beta)
160
+ Jini.new("#{@head}[#{alpha} #{action} #{beta}]")
161
+ end
162
+
163
+ # @param [Regexp | String] token to be purged from the head
164
+ def purge(token)
165
+ @head.gsub(token, '')
162
166
  end
163
167
  end
data/test/jini_test.rb CHANGED
@@ -37,8 +37,8 @@ class JiniTest < Minitest::Test
37
37
  assert_equal(
38
38
  '/parent/child[1]',
39
39
  Jini.new
40
- .add_path(PARENT)
41
- .add_path(CHILD)
40
+ .add_node(PARENT)
41
+ .add_node(CHILD)
42
42
  .at(1)
43
43
  .to_s
44
44
  )
@@ -48,9 +48,9 @@ class JiniTest < Minitest::Test
48
48
  assert_equal(
49
49
  'parent/toy',
50
50
  Jini.new(PARENT)
51
- .add_path(CHILD)
52
- .add_path('toy')
53
- .remove_path(CHILD)
51
+ .add_node(CHILD)
52
+ .add_node('toy')
53
+ .remove_node(CHILD)
54
54
  .to_s
55
55
  )
56
56
  end
@@ -59,7 +59,7 @@ class JiniTest < Minitest::Test
59
59
  assert_equal(
60
60
  '/node[@key="value"]',
61
61
  Jini.new
62
- .add_path('node')
62
+ .add_node('node')
63
63
  .add_attr('key', 'value')
64
64
  .to_s
65
65
  )
@@ -69,8 +69,8 @@ class JiniTest < Minitest::Test
69
69
  assert_equal(
70
70
  '/parent/child/*',
71
71
  Jini.new
72
- .add_path(PARENT)
73
- .add_path(CHILD)
72
+ .add_node(PARENT)
73
+ .add_node(CHILD)
74
74
  .all
75
75
  .to_s
76
76
  )
@@ -79,7 +79,7 @@ class JiniTest < Minitest::Test
79
79
  def test_all_fail
80
80
  assert_raises do
81
81
  Jini.new
82
- .add_path(PARENT)
82
+ .add_node(PARENT)
83
83
  .add_attr('key', 'value')
84
84
  .all
85
85
  end
@@ -89,8 +89,8 @@ class JiniTest < Minitest::Test
89
89
  assert_equal(
90
90
  '/home/batya',
91
91
  Jini.new
92
- .add_path('home')
93
- .add_path('batya')
92
+ .add_node('home')
93
+ .add_node('batya')
94
94
  .add_attr('drunk', 'very')
95
95
  .remove_attr('drunk')
96
96
  .to_s
@@ -102,10 +102,10 @@ class JiniTest < Minitest::Test
102
102
  '/parent/child/toy',
103
103
  Jini
104
104
  .new
105
- .add_path(PARENT)
106
- .add_path(CHILD)
105
+ .add_node(PARENT)
106
+ .add_node(CHILD)
107
107
  .add_attr('age', 'teen')
108
- .add_path('toy')
108
+ .add_node('toy')
109
109
  .add_attr('age', 'old')
110
110
  .remove_attr('age')
111
111
  .to_s
@@ -123,7 +123,7 @@ class JiniTest < Minitest::Test
123
123
  assert_equal(
124
124
  'parent::child',
125
125
  Jini.new(PARENT)
126
- .add_path(CHILD)
126
+ .add_node(CHILD)
127
127
  .selection
128
128
  .to_s
129
129
  )
@@ -132,8 +132,8 @@ class JiniTest < Minitest::Test
132
132
  def test_selection_fail
133
133
  assert_raises do
134
134
  Jini.new
135
- .add_path(PARENT)
136
- .add_path(CHILD)
135
+ .add_node(PARENT)
136
+ .add_node(CHILD)
137
137
  .add_attr('k', 'v')
138
138
  .selection
139
139
  .to_s
@@ -142,9 +142,9 @@ class JiniTest < Minitest::Test
142
142
 
143
143
  def test_or
144
144
  assert_equal(
145
- 'parent/child[animal|toy]',
145
+ 'parent/child[animal | toy]',
146
146
  Jini.new(PARENT)
147
- .add_path(CHILD)
147
+ .add_node(CHILD)
148
148
  .or('animal', 'toy')
149
149
  .to_s
150
150
  )
@@ -154,7 +154,7 @@ class JiniTest < Minitest::Test
154
154
  assert_equal(
155
155
  'parent/child[toys < 10]',
156
156
  Jini.new(PARENT)
157
- .add_path(CHILD)
157
+ .add_node(CHILD)
158
158
  .lt('toys', 10)
159
159
  .to_s
160
160
  )
@@ -164,7 +164,7 @@ class JiniTest < Minitest::Test
164
164
  assert_equal(
165
165
  'parent/child[toys > 10]',
166
166
  Jini.new(PARENT)
167
- .add_path(CHILD)
167
+ .add_node(CHILD)
168
168
  .gt('toys', 10)
169
169
  .to_s
170
170
  )
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.6
4
+ version: 0.0.7
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-15 00:00:00.000000000 Z
11
+ date: 2022-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest