ixyml 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ixyml (0.0.1)
4
+ ixyml (0.0.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -1,3 +1,3 @@
1
1
  module Ixyml
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -90,6 +90,8 @@
90
90
  # | d : delete | | sp: previous sibling | +---------------------------------+
91
91
  # | s : set | | ss: immediately |
92
92
  # +---------------+ | succeeding sibling |
93
+ # | d : descendants |
94
+ # | df: first descendant |
93
95
  # | p : parent |
94
96
  # | r : root |
95
97
  # | a : attribute |
@@ -110,13 +112,15 @@
110
112
  # # - b: ccc
111
113
  # # - d:
112
114
  # # - e: fff
115
+ # # - h:
116
+ # # -e: ggg
113
117
  # # - d:
114
118
  # # - e: ggg
115
119
  # # - text
116
120
  # # - h:
117
121
  # # - e: fff
118
122
  # xyml_tree=Xyml::Document.new(File.open("aaa.xyml"))
119
- # #-> [{a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]}]
123
+ # #-> [{a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]}]
120
124
  #
121
125
  module Xyml_element
122
126
 
@@ -137,7 +141,7 @@ module Xyml_element
137
141
  # エレメントの配列
138
142
  #
139
143
  # xyml_tree.root.gc
140
- # #-> [{d:[{e:"fff"}]},{d:[{e:"ggg"}]},{h:[{e:'fff'}]}]
144
+ # #-> [{d:[{e:"fff"},{h:[{e:'ggg'}]}},{d:[{e:"ggg"}]},{h:[{e:'fff'}]}]
141
145
  def gc
142
146
  array=Array.new
143
147
  self.values[0].each do |child|
@@ -155,7 +159,7 @@ module Xyml_element
155
159
  # エレメント(子エレメントが無い場合は'nil')
156
160
  #
157
161
  # xyml_tree.root.gcf
158
- # #-> {d:[{e:'fff'}]}
162
+ # #-> {d:[{e:'fff'},{h:[{e:'ggg'}]}]}
159
163
  def gcf
160
164
  self.values[0].each do |child|
161
165
  return child if child.is_a?(Hash) && child.values[0].is_a?(Array)
@@ -176,7 +180,7 @@ module Xyml_element
176
180
  # エレメントの配列
177
181
  #
178
182
  # xyml_tree.root.gcn 'd' # or xyml_tree.root.gcn :d
179
- # #-> [{d:[{e:"fff"}]},{d:[{e:"ggg"},'text']}]
183
+ # #-> [{d:[{e:"fff"},{h:[{e:'ggg'}]}]},{d:[{e:"ggg"},'text']}]
180
184
  def gcn ename
181
185
  ename=ename.intern if ename.is_a?(String)
182
186
  array=Array.new
@@ -186,6 +190,28 @@ module Xyml_element
186
190
  array
187
191
  end
188
192
 
193
+ # get descendant elements with the designated name.
194
+ #
195
+ # 指定された名前を持つ子孫エレメントの取得
196
+ # ==== Args
197
+ # _ename_ :: element name(string or symbol).
198
+ #
199
+ # _ename_ :: エレメント名(文字列もしくはシンボル)
200
+ # ==== Return
201
+ # an array of elements.
202
+ #
203
+ # エレメントの配列
204
+ #
205
+ # xyml_tree.root.gdn 'h' # or xyml_tree.root.gdn :h
206
+ # #-> [{h:[{e:"ggg"}]},{h:[{e:"fff"},'text']}]
207
+ def gdn ename
208
+ ename=ename.intern if ename.is_a?(String)
209
+ array=Array.new
210
+ gdn_rcsv self,array,ename
211
+ array
212
+ end
213
+
214
+
189
215
  # get the first child element with the designated name.
190
216
  #
191
217
  # 指定された名前を持つ最初の子エレメントの取得
@@ -204,6 +230,21 @@ module Xyml_element
204
230
  nil
205
231
  end
206
232
 
233
+ # get the first(depth-first search) descendant element with the designated name.
234
+ #
235
+ # 指定された名前を持つ(深さ優先探索での)最初の子孫エレメントの取得
236
+ # ==== Return
237
+ # an element, or nil if no descendant element with the designated name.
238
+ #
239
+ # エレメント(指定された名前の子孫エレメントが無い場合は'nil')
240
+ #
241
+ # xyml_tree.root.gdfn 'h' # or xyml_tree.root.gcfn :h
242
+ # #-> {h:[{e:"ggg"}]}
243
+ def gdfn ename
244
+ ename=ename.intern if ename.is_a?(String)
245
+ return gdfn_rcsv self,ename
246
+ end
247
+
207
248
  # get child elements with the designated element name and atrribute.
208
249
  #
209
250
  # 指定された名前と属性を持つ子エレメントの取得
@@ -232,6 +273,32 @@ module Xyml_element
232
273
  array
233
274
  end
234
275
 
276
+ # get descendant elements with the designated element name and atrribute.
277
+ #
278
+ # 指定された名前と属性を持つ子孫エレメントの取得
279
+ # ==== Args
280
+ # _ename_ :: element name(string or symbol)
281
+ # _aname_ :: attribute name(string or symbol)
282
+ # _avalue_ :: attribute value
283
+ #
284
+ # _ename_ :: エレメント名(文字列もしくはシンボル)
285
+ # _aname_ :: 属性名(文字列もしくはシンボル)
286
+ # _avalue_ :: 属性値
287
+ # ==== Return
288
+ # an array of elements.
289
+ #
290
+ # エレメントの配列
291
+ #
292
+ # xyml_tree.root.gcna 'h','e','ggg'
293
+ # #-> [{h:[{e:"ggg"}]}]
294
+ def gdna ename,aname,avalue
295
+ ename=ename.intern if ename.is_a?(String)
296
+ aname=aname.intern if aname.is_a?(String)
297
+ array=Array.new
298
+ gdna_rcsv self,array,ename,aname,avalue
299
+ array
300
+ end
301
+
235
302
  # get child elements with the designated atrribute.
236
303
  #
237
304
  # 指定された属性を持つ子エレメントの取得
@@ -257,6 +324,28 @@ module Xyml_element
257
324
  array
258
325
  end
259
326
 
327
+ # get descendant elements with the designated atrribute.
328
+ #
329
+ # 指定された属性を持つ子孫エレメントの取得
330
+ # ==== Args
331
+ # _aname_ :: attribute name(string or symbol)
332
+ # _avalue_ :: attribute value
333
+ #
334
+ # _aname_ :: 属性名(文字列もしくはシンボル)
335
+ # _avalue_ :: 属性値
336
+ # ==== Return
337
+ # an array of elements.
338
+ #
339
+ # エレメントの配列
340
+ #
341
+ # xyml_tree.root.gca 'e','ggg'
342
+ # #-> [{h:[{e:"ggg"}]},{d:[{e:"ggg"}]}]
343
+ def gda aname,avalue
344
+ aname=aname.intern if aname.is_a?(String)
345
+ array=Array.new
346
+ gda_rcsv self,array,aname,avalue
347
+ array
348
+ end
260
349
 
261
350
  # get the first child elements with the designated element name and atrribute.
262
351
  #
@@ -285,6 +374,30 @@ module Xyml_element
285
374
  nil
286
375
  end
287
376
 
377
+ # get the first(depth-first search) descendant elements with the designated element name and atrribute.
378
+ #
379
+ # 指定された名前と属性を持つ最初の子孫エレメントの取得
380
+ # ==== Args
381
+ # _ename_ :: element name(string or symbol)
382
+ # _aname_ :: attribute name(string or symbol)
383
+ # _avalue_ :: attribute value
384
+ #
385
+ # _ename_ :: エレメント名(文字列もしくはシンボル)
386
+ # _aname_ :: 属性名(文字列もしくはシンボル)
387
+ # _avalue_ :: 属性値
388
+ # ==== Return
389
+ # an element, or nil if no descendant with the designated name and attribute.
390
+ #
391
+ # エレメント(指定された名前と属性の子孫エレメントが無い場合は'nil')
392
+ #
393
+ # xyml_tree.root.gcfna 'h','e','ggg'
394
+ # #-> {h:[{e:"ggg"}]}
395
+ def gdfna ename,aname,avalue
396
+ ename=ename.intern if ename.is_a?(String)
397
+ aname=aname.intern if aname.is_a?(String)
398
+ return gdfna_rcsv self,ename,aname,avalue
399
+ end
400
+
288
401
  # get the previous sibling element.
289
402
  #
290
403
  # 直前のシブリング(兄弟姉妹)エレメントの取得。
@@ -296,7 +409,7 @@ module Xyml_element
296
409
  # my_element=xyml_tree.root.gcfna 'd','e','ggg'
297
410
  # #-> {d:[{e:"ggg"},'text']}
298
411
  # my_element.gsp
299
- # #-> {d:[{e:"fff"}]}
412
+ # #-> {d:[{e:"fff"},{h:[{e:'ggg'}]}]}
300
413
  def gsp
301
414
  if parent=self.gp then
302
415
  siblings=parent.gc
@@ -364,10 +477,10 @@ module Xyml_element
364
477
  # my_element.gcf
365
478
  # #-> {j:[{e:"kkk"}]}
366
479
  # xyml_tree
367
- # #-> [{a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text',{j:[e:"kkk"]}]},{h:[{e:'fff'}]}]}] #<- element was added next to text.
480
+ # #-> [{a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text',{j:[e:"kkk"]}]},{h:[{e:'fff'}]}]}] #<- element was added next to text.
368
481
  # my_element.st(my_elment.gt) #<- text was unset and set again.
369
482
  # xyml_tree
370
- # #-> [{a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},{j:[e:"kkk"]},'text']},{h:[{e:'fff'}]}]}] #<- text next to added element.
483
+ # #-> [{a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},{j:[e:"kkk"]},'text']},{h:[{e:'fff'}]}]}] #<- text next to added element.
371
484
  def ac elm
372
485
  return nil unless elm.is_a?(Hash) and elm.values[0].is_a?(Array)
373
486
  elm.extend Xyml_element
@@ -398,7 +511,7 @@ module Xyml_element
398
511
  # my_element.gsp
399
512
  # #-> {j:[{e:"kkk"}]}
400
513
  # xyml_tree
401
- # #-> [{a:[{b:'ccc'},{d:[{e:'fff'}]},{j:[{e:"kkk"}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]}]
514
+ # #-> [{a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{j:[{e:"kkk"}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]}]
402
515
  def isp elm
403
516
  return nil if self.gp==:_iamroot
404
517
  elm.extend Xyml_element
@@ -435,7 +548,7 @@ module Xyml_element
435
548
  # my_element.gss
436
549
  # #-> {j:[{e:"kkk"}]}
437
550
  # xyml_tree
438
- # #-> [{a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{j:[{e:"kkk"}]},{h:[{e:'fff'}]}]}]
551
+ # #-> [{a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{j:[{e:"kkk"}]},{h:[{e:'fff'}]}]}]
439
552
  def iss elm
440
553
  return nil if self.gp==:_iamroot
441
554
  elm.extend Xyml_element
@@ -672,7 +785,7 @@ module Xyml_element
672
785
 
673
786
  # delete the parent element information.
674
787
  #
675
- # 親エレメントj情報の削除
788
+ # 親エレメント情報の削除
676
789
  # ==== Note
677
790
  # this method is for the Xyml and Xyml_element package development use, not for users.
678
791
  #
@@ -774,5 +887,66 @@ module Xyml_element
774
887
  end
775
888
  =end
776
889
 
890
+ private
891
+
892
+ def gdn_rcsv elm,array,ename
893
+ elm.values[0].each do |child|
894
+ if child.is_a?(Hash) && child.values[0].is_a?(Array) then
895
+ if child.keys[0]==ename then
896
+ array << child
897
+ end
898
+ gdn_rcsv child,array,ename
899
+ end
900
+ end
901
+ end
777
902
 
903
+ def gdfn_rcsv elm,ename
904
+ elm.values[0].each do |child|
905
+ if child.is_a?(Hash) && child.values[0].is_a?(Array) then
906
+ if child.keys[0]==ename then
907
+ return child;
908
+ end
909
+ if temp=gdfn_rcsv(child,ename) then
910
+ return temp
911
+ end
912
+ end
913
+ end
914
+ nil
915
+ end
916
+
917
+ def gdna_rcsv elm,array,ename,aname,avalue
918
+ elm.values[0].each do |child|
919
+ if child.is_a?(Hash) && child.values[0].is_a?(Array) then
920
+ if child.keys[0]==ename && child.ga(aname)==avalue then
921
+ array << child
922
+ end
923
+ gdna_rcsv child,array,ename,aname,avalue
924
+ end
925
+ end
926
+ end
927
+
928
+ def gda_rcsv elm,array,aname,avalue
929
+ elm.values[0].each do |child|
930
+ if child.is_a?(Hash) && child.values[0].is_a?(Array) then
931
+ if child.ga(aname)==avalue then
932
+ array << child
933
+ end
934
+ gda_rcsv child,array,aname,avalue
935
+ end
936
+ end
937
+ end
938
+
939
+ def gdfna_rcsv elm,ename,aname,avalue
940
+ elm.values[0].each do |child|
941
+ if child.is_a?(Hash) && child.values[0].is_a?(Array) then
942
+ if child.keys[0]==ename && child.ga(aname)==avalue then
943
+ return child
944
+ end
945
+ if temp=gdfna_rcsv(child,ename,aname,avalue) then
946
+ return temp
947
+ end
948
+ end
949
+ end
950
+ nil
951
+ end
778
952
  end
@@ -113,7 +113,7 @@ class TestDocument < Test::Unit::TestCase
113
113
 
114
114
  should ". program samples in the document work correctly." do
115
115
  # gc(get children)
116
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
116
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
117
117
  assert_equal(:d,xyml_tree.root.gc[0].name)
118
118
  assert_equal('fff',xyml_tree.root.gc[0].ga(:e))
119
119
  assert_equal(:d,xyml_tree.root.gc[1].name)
@@ -121,48 +121,79 @@ class TestDocument < Test::Unit::TestCase
121
121
  assert_equal(:h,xyml_tree.root.gc[2].name)
122
122
  assert_equal('fff',xyml_tree.root.gc[2].ga(:e))
123
123
  # gcf(get first child)
124
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
124
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
125
125
  assert_equal(:d,xyml_tree.root.gcf.name)
126
126
  assert_equal('fff',xyml_tree.root.gcf.ga(:e))
127
127
  # gcn(get child elements with the designated name)
128
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
128
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
129
129
  assert_equal(:d,xyml_tree.root.gcn(:d)[0].name)
130
130
  assert_equal('fff',xyml_tree.root.gcn(:d)[0].ga(:e))
131
131
  assert_equal(:d,xyml_tree.root.gcn(:d)[1].name)
132
132
  assert_equal('ggg',xyml_tree.root.gcn(:d)[1].ga(:e))
133
133
  assert_equal(2,xyml_tree.root.gcn(:d).size)
134
+ # gdn(get descendant elements with the designated name)
135
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
136
+ assert_equal(:h,xyml_tree.root.gdn(:h)[0].name)
137
+ assert_equal('ggg',xyml_tree.root.gdn(:h)[0].ga(:e))
138
+ assert_equal(:h,xyml_tree.root.gdn(:h)[1].name)
139
+ assert_equal('fff',xyml_tree.root.gdn(:h)[1].ga(:e))
140
+ assert_equal(2,xyml_tree.root.gdn(:h).size)
134
141
  # gcfn(get the first child element with the designated name)
135
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
142
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
136
143
  assert_equal(:d,xyml_tree.root.gcfn(:d).name)
137
144
  assert_equal('fff',xyml_tree.root.gcfn(:d).ga(:e))
145
+ # gdfn(get the first descendant element with the designated name)
146
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
147
+ assert_equal(:h,xyml_tree.root.gdfn(:h).name)
148
+ assert_equal('ggg',xyml_tree.root.gdfn(:h).ga(:e))
149
+ assert_equal(nil,xyml_tree.root.gdfn(:k))
138
150
  # gcna(get child elements with the designated element name and atrribute)
139
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
151
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
140
152
  assert_equal(:d,xyml_tree.root.gcna(:d,:e,'ggg')[0].name)
141
153
  assert_equal('ggg',xyml_tree.root.gcna(:d,:e,'ggg')[0].ga(:e))
142
154
  assert_equal(1,xyml_tree.root.gcna(:d,:e,'fff').size)
155
+ # gdna(get descendant elements with the designated element name and atrribute)
156
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
157
+ assert_equal(:h,xyml_tree.root.gdna(:h,:e,'ggg')[0].name)
158
+ assert_equal('ggg',xyml_tree.root.gdna(:h,:e,'ggg')[0].ga(:e))
159
+ assert_equal(1,xyml_tree.root.gdna(:d,:e,'ggg').size)
160
+ assert_equal(0,xyml_tree.root.gdna(:d,:e,'abc').size)
143
161
  # gca(get child elements with the designated atrribute)
144
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
162
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
145
163
  assert_equal(:d,xyml_tree.root.gca(:e,'fff')[0].name)
146
164
  assert_equal('fff',xyml_tree.root.gca(:e,'fff')[0].ga(:e))
147
165
  assert_equal(:h,xyml_tree.root.gca(:e,'fff')[1].name)
148
166
  assert_equal('fff',xyml_tree.root.gca(:e,'fff')[1].ga(:e))
149
167
  assert_equal(2,xyml_tree.root.gca(:e,'fff').size)
168
+ # gda(get descendant elements with the designated atrribute)
169
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
170
+ assert_equal(:h,xyml_tree.root.gda(:e,'ggg')[0].name)
171
+ assert_equal('ggg',xyml_tree.root.gda(:e,'ggg')[0].ga(:e))
172
+ assert_equal(:d,xyml_tree.root.gda(:e,'ggg')[1].name)
173
+ assert_equal('ggg',xyml_tree.root.gda(:e,'ggg')[1].ga(:e))
174
+ assert_equal(2,xyml_tree.root.gda(:e,'ggg').size)
175
+ assert_equal(0,xyml_tree.root.gda(:e,'abc').size)
150
176
  # gcfna(get the first child elements with the designated element name and atrribute)
151
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
177
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
152
178
  assert_equal(:d,xyml_tree.root.gcfna(:d,:e,'ggg').name)
153
179
  assert_equal('ggg',xyml_tree.root.gcfna(:d,:e,'ggg').ga(:e))
180
+ # gdfna(get the first descendant elements with the designated element name and atrribute)
181
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
182
+ assert_equal(:h,xyml_tree.root.gdfna(:h,:e,'ggg').name)
183
+ assert_equal('ggg',xyml_tree.root.gdfna(:h,:e,'ggg').ga(:e))
184
+ assert_equal(nil,xyml_tree.root.gdfna(:d,:e,'abc'))
154
185
  # gsp(get the previous sibling element)
155
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
186
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
156
187
  my_element=xyml_tree.root.gcfna 'd','e','ggg'
157
188
  assert_equal(:d,my_element.gsp.name)
158
189
  assert_equal('fff',my_element.gsp.ga(:e))
159
190
  # gss(get the immediately succeeding sibling element)
160
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
191
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
161
192
  my_element=xyml_tree.root.gcfna 'd','e','ggg'
162
193
  assert_equal(:h,my_element.gss.name)
163
194
  assert_equal('fff',my_element.gss.ga(:e))
164
195
  # ac(add a child)
165
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
196
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
166
197
  my_element=xyml_tree.root.gcfna 'd','e','ggg'
167
198
  my_element.ac({j:[{e:'kkk'}]})
168
199
  assert_equal(:j,my_element.gcf.name)
@@ -170,39 +201,39 @@ class TestDocument < Test::Unit::TestCase
170
201
  my_element.st(my_element.gt)
171
202
  assert_equal('text',my_element[:d][2])
172
203
  # isp(insert an element as a previous sibling element)
173
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
204
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
174
205
  my_element=xyml_tree.root.gcfna 'd','e','ggg'
175
206
  my_element.isp({j:[{e:'kkk'}]})
176
207
  assert_equal(:j,my_element.gsp.name)
177
208
  assert_equal('kkk',my_element.gsp.ga(:e))
178
209
  # iss(insert an element as an immediately succeeding sibling element)
179
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
210
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
180
211
  my_element=xyml_tree.root.gcfna 'd','e','ggg'
181
212
  my_element.iss({j:[{e:'kkk'}]})
182
213
  assert_equal(:j,my_element.gss.name)
183
214
  assert_equal('kkk',my_element.gss.ga(:e))
184
215
  # ga(get value of attribute with the designated attribute name)
185
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
216
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
186
217
  assert_equal('ccc',xyml_tree.root.ga(:b))
187
218
  # sa(set value to the attribute with the designated attribute name)
188
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
219
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
189
220
  my_element=xyml_tree.root.gcfna 'd','e','ggg'
190
221
  my_element.sa(:e,'lll').sa(:m,'nnn')
191
222
  assert_equal('lll',my_element.ga(:e))
192
223
  assert_equal('nnn',my_element.ga(:m))
193
224
  # da(delete attribute)
194
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
225
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
195
226
  xyml_tree.root.da(:b)
196
227
  assert_equal(nil,xyml_tree.root.ga(:b))
197
228
  # gt(get text)
198
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
229
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
199
230
  my_element=xyml_tree.root.gcfna 'd','e','ggg'
200
231
  assert_equal('text',my_element.gt)
201
232
  my_element.at 'abc'
202
233
  assert_equal('textabc',my_element.gt)
203
234
  assert_equal(['text','abc'],my_element.gt(:raw))
204
235
  # st(set text)
205
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
236
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
206
237
  my_element=xyml_tree.root.gcfna 'd','e','ggg'
207
238
  my_element.st('abc')
208
239
  assert_equal('abc',my_element.gt)
@@ -210,26 +241,26 @@ class TestDocument < Test::Unit::TestCase
210
241
  assert_equal('',my_element.gt)
211
242
 
212
243
  # at(add text)
213
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
244
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
214
245
  my_element=xyml_tree.root.gcfna 'd','e','ggg'
215
246
  my_element.at('abc')
216
247
  assert_equal('textabc',my_element.gt)
217
248
  # gp(get the parent element)
218
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
249
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
219
250
  my_element=xyml_tree.root.gcfna 'd','e','ggg'
220
251
  assert_equal(:a,my_element.gp.name)
221
252
  assert_equal(nil,xyml_tree.root.gp)
222
253
  # gr(get the root element)
223
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
254
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
224
255
  new_element=Xyml::Element.new(:j)
225
256
  xyml_tree.root.gcfna('d','e','ggg').ac new_element
226
257
  assert_equal(:a,new_element.gr.name)
227
258
  # is_root?
228
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
259
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
229
260
  assert_equal(true,xyml_tree.root.is_root?)
230
261
  assert_equal(false,xyml_tree.root.gcfna('d','e','ggg').is_root?)
231
262
  # dsl(delete the self element from the child element array of its parent element)
232
- xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
263
+ xyml_tree=Xyml::Document.new({a:[{b:'ccc'},{d:[{e:'fff'},{h:[{e:'ggg'}]}]},{d:[{e:'ggg'},'text']},{h:[{e:'fff'}]}]})
233
264
  xyml_tree.root.gcfna('d','e','ggg').dsl
234
265
  assert_equal(:d,xyml_tree.root.gc[0].name)
235
266
  assert_equal('fff',xyml_tree.root.gc[0].ga(:e))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ixyml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-10 00:00:00.000000000 Z
12
+ date: 2013-10-17 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: ! "I propose a new file format called \"XYML.\" Xyml module has the
15
15
  following functions:\n * loads a XYML file as an instance of Xyml::Document, saves
@@ -133,18 +133,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
133
133
  - - ! '>='
134
134
  - !ruby/object:Gem::Version
135
135
  version: '0'
136
- segments:
137
- - 0
138
- hash: -351511487
139
136
  required_rubygems_version: !ruby/object:Gem::Requirement
140
137
  none: false
141
138
  requirements:
142
139
  - - ! '>='
143
140
  - !ruby/object:Gem::Version
144
141
  version: '0'
145
- segments:
146
- - 0
147
- hash: -351511487
148
142
  requirements: []
149
143
  rubyforge_project:
150
144
  rubygems_version: 1.8.23