rhash 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/rhash.rb +59 -0
  2. data/test/test.rb +11 -10
  3. metadata +5 -5
@@ -454,6 +454,52 @@ class RHash
454
454
  end
455
455
  end
456
456
 
457
+ #
458
+ # Converts the RHash to a XML.
459
+ #
460
+ # x= RHash.new
461
+ #
462
+ # x["code"] = RHash.new
463
+ #
464
+ # x["code"]["color"] = "0x0454"
465
+ #
466
+ # x["code"]["size"] = 24
467
+ #
468
+ # x["code"]["letter"] = "Arial"
469
+ #
470
+ # x["code"]["mode"] = RHash.new
471
+ #
472
+ # x["code"]["mode"]["present"] = "Love"
473
+ #
474
+ # x["code"]["mode"]["to"] = "Rose Mary"
475
+ #
476
+ # x.to_xml #=> <code>
477
+ #
478
+ # <color>0x0454</color>
479
+ #
480
+ # <size>24</size>
481
+ #
482
+ # <letter>Arial</letter>
483
+ #
484
+ # <mode>
485
+ #
486
+ # <present>Love</present>
487
+ #
488
+ # <to>Rose Mary</to>
489
+ #
490
+ # </mode>
491
+ #
492
+ # </code>
493
+ #
494
+ def to_xml
495
+ msg_xml = ''
496
+ @hash.each do |info|
497
+ msg_xml += "<#{info.key}>#{xml(info.value)}</#{info.key}>\n"
498
+ end
499
+ msg_xml
500
+ end
501
+ alias :to_html :to_xml
502
+
457
503
  #
458
504
  # See Hash::to_a
459
505
  #
@@ -498,6 +544,19 @@ class RHash
498
544
 
499
545
  private
500
546
 
547
+ def xml(info)
548
+ msg_xml = ""
549
+ if info.is_a? RHash
550
+ msg_xml += "\n"
551
+ info.each do |subinfo|
552
+ msg_xml += "<#{subinfo[0]}>#{xml(subinfo[1])}</#{subinfo[0]}>\n"
553
+ end
554
+ else
555
+ msg_xml += "#{info}"
556
+ end
557
+ msg_xml
558
+ end
559
+
501
560
  def equal(other)
502
561
  if other.size == self.size
503
562
  hits = other.size
@@ -13,15 +13,16 @@ n[:m] = 5
13
13
  #x["r"] = 6
14
14
 
15
15
  x= RHash.new
16
- x["r"] = 5
17
- x["s"] = 6
18
- x["d"] = 5
19
- x["t"] = 5
20
-
16
+ x["body"] = RHash.new
17
+ x["body"]["color"] = "0x0454"
18
+ x["body"]["size"] = 24
19
+ x["body"]["letter"] = "Arial"
20
+ x["body"]["mode"] = RHash.new
21
+ x["body"]["mode"]["present"] = "Love"
22
+ x["body"]["mode"]["to"] = "Rose Mary"
21
23
  #puts n == x
22
24
  #puts n == 5
23
-
24
- a,b = n.diff x
25
-
26
- puts a.inspect
27
- puts b.inspect
25
+ #a,b = n.diff x
26
+ #puts a.inspect
27
+ #puts b.inspect
28
+ puts x.to_html
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rhash
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
9
+ - 5
10
+ version: 0.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Rodrigo Mello Nardi
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-07-15 00:00:00 -03:00
18
+ date: 2010-07-16 00:00:00 -03:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
@@ -63,6 +63,6 @@ rubyforge_project:
63
63
  rubygems_version: 1.3.7
64
64
  signing_key:
65
65
  specification_version: 3
66
- summary: an ordenable hash
66
+ summary: An ordenable hash.
67
67
  test_files:
68
68
  - test/test.rb