ruby-xml-smart 0.1.11-i486-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. data/AUTHORS +4 -0
  2. data/COPYING +504 -0
  3. data/Changelog +192 -0
  4. data/README +52 -0
  5. data/Rakefile +112 -0
  6. data/TODO +6 -0
  7. data/examples/EXAMPLE.xml +17 -0
  8. data/examples/EXAMPLE.xml.sic +17 -0
  9. data/examples/Visualise/EXAMPLE.xml +18 -0
  10. data/examples/Visualise/term-ansicolor-0.0.4/CHANGES +11 -0
  11. data/examples/Visualise/term-ansicolor-0.0.4/GPL +340 -0
  12. data/examples/Visualise/term-ansicolor-0.0.4/README.en +23 -0
  13. data/examples/Visualise/term-ansicolor-0.0.4/Rakefile +72 -0
  14. data/examples/Visualise/term-ansicolor-0.0.4/VERSION +1 -0
  15. data/examples/Visualise/term-ansicolor-0.0.4/examples/cdiff.rb +20 -0
  16. data/examples/Visualise/term-ansicolor-0.0.4/examples/example.rb +82 -0
  17. data/examples/Visualise/term-ansicolor-0.0.4/install.rb +12 -0
  18. data/examples/Visualise/term-ansicolor-0.0.4/lib/term/ansicolor.rb +78 -0
  19. data/examples/Visualise/xpath_visual.rb +45 -0
  20. data/examples/add_children.rb +14 -0
  21. data/examples/add_elements.rb +13 -0
  22. data/examples/attrs.rb +15 -0
  23. data/examples/children.rb +14 -0
  24. data/examples/concurrent.rb +30 -0
  25. data/examples/copy.rb +23 -0
  26. data/examples/create.rb +18 -0
  27. data/examples/delete.rb +30 -0
  28. data/examples/move_elements.rb +12 -0
  29. data/examples/namespace.rb +14 -0
  30. data/examples/namespace_detailed.rb +36 -0
  31. data/examples/namespace_find.rb +20 -0
  32. data/examples/pull.rb +18 -0
  33. data/examples/qname.rb +16 -0
  34. data/examples/replace.rb +14 -0
  35. data/examples/set_OR_replace.rb +32 -0
  36. data/examples/signals.rb +28 -0
  37. data/examples/string.rb +27 -0
  38. data/examples/write.rb +11 -0
  39. data/examples/xpath_attrs.rb +19 -0
  40. data/examples/xpath_functions.rb +7 -0
  41. data/examples/xpath_root.rb +6 -0
  42. data/extconf.rb +29 -0
  43. data/rbxs.c +136 -0
  44. data/rbxs.h +53 -0
  45. data/rbxs_dom.c +483 -0
  46. data/rbxs_dom.h +32 -0
  47. data/rbxs_domattribute.c +189 -0
  48. data/rbxs_domattribute.h +18 -0
  49. data/rbxs_domattributeset.c +182 -0
  50. data/rbxs_domattributeset.h +17 -0
  51. data/rbxs_domelement.c +656 -0
  52. data/rbxs_domelement.h +18 -0
  53. data/rbxs_domnamespace.c +127 -0
  54. data/rbxs_domnamespace.h +18 -0
  55. data/rbxs_domnamespaceset.c +276 -0
  56. data/rbxs_domnamespaceset.h +17 -0
  57. data/rbxs_domnodeset.c +284 -0
  58. data/rbxs_domnodeset.h +19 -0
  59. data/rbxs_domother.c +121 -0
  60. data/rbxs_domother.h +18 -0
  61. data/rbxs_domtext.c +165 -0
  62. data/rbxs_domtext.h +18 -0
  63. data/rbxs_pull.c +244 -0
  64. data/rbxs_pull.h +17 -0
  65. data/rbxs_pullattribute.c +124 -0
  66. data/rbxs_pullattribute.h +18 -0
  67. data/rbxs_pullattributeset.c +156 -0
  68. data/rbxs_pullattributeset.h +17 -0
  69. data/rbxs_qname.c +267 -0
  70. data/rbxs_qname.h +18 -0
  71. data/rbxs_utils.h +39 -0
  72. data/test/namespace_test.rb +83 -0
  73. metadata +125 -0
data/Changelog ADDED
@@ -0,0 +1,192 @@
1
+ 0.1.11 "name has to be selected"
2
+ * Made usage in threads more robust (examples/concurrent.rb)
3
+ (namespace related bug? gone!)
4
+ * Made examples work when smart.so is not yet installed
5
+ * Fixed documentation generation the ugly way (ifdefs)
6
+ * Addes documentation comments all over the code
7
+ * GEM creation is now supported by Rakefile
8
+ * XML::SMART::QNAME#to_s returns "prefix:name" instead of "name" only
9
+ * XML::SMART::QNAME#inspect works the same for pull and dom
10
+ * XML::Smart::Pull::AttributeSet includes Enumeration
11
+ * 1.8.7 supported (rb_io_t works slightly different)
12
+
13
+ 0.1.10 "christmas is all around you"
14
+ * Adds XML::Smart::Dom::NamespaceSet#length
15
+ * Fixes a bug XML::Smart::Dom::NamespaceSet#[]= that lead to segfaults for
16
+ subsequent namespace setting
17
+ * Fixes a bug XML::Smart::Dom#find and XML::Smart::Dom::Element#find
18
+ -> ruby 1.8.* segfaults SOMETIMES (heisenbug :-) when rb_hash_foreach is
19
+ called for empty hashes
20
+ * code cleanup and ifdefs to support > 1.8.6 (including 1.9.0)
21
+
22
+ 0.1.9 "signal weaving"
23
+ * XML::Smart::Dom::NodeSet#delete_if! returns now true when deleting a node
24
+ * Change Handlers (examples/signals.rb)
25
+ -> XML::Smart::Dom#on_change - supply a block that is called when a
26
+ document changes
27
+ -> XML::Smart::Dom#change_handlers - an array that holds the list of
28
+ change handlers (add, change, delete, ... them)
29
+ -> 2 parameters are sent to your change handlers: type, node
30
+ type is one of XML::Smart::Dom::SIGNAL_ADD,
31
+ XML::Smart::Dom::SIGNAL_CHANGE, XML::Smart::Dom::SIGNAL_DELETE
32
+ * Adds XML::Smart::Dom::Other which contains #text, #to_s, #path
33
+ -> returned when unknown node type
34
+ * Adds XML::Smart::Dom#namespaces[=] which adds global namespace support
35
+ -> its a hash
36
+ -> no more need to add namespaces to every #find
37
+ -> examples/namespace_find.rb
38
+ * Loads of bugfixes, which I can no longer remember :-)
39
+ -> they had mostly to do with namespaces (e.g. handle xml namespace)
40
+
41
+ 0.1.8 "Documentation is like sex: when it is good, it is very, very good; and
42
+ when it is bad, it is better than nothing."
43
+ * rake is now the only way to go
44
+ * Change qname.c to work correct for namespaces, inspired by Jonathan
45
+ Paisley
46
+ * Added the ability for append_child to move, copy existing nodes (from the same
47
+ or any other document)
48
+ Added constants:
49
+ XML::Smart::DOM::Element::MOVE (default for same document)
50
+ XML::Smart::DOM::Element::COPY (default for different document)
51
+ * API BROKEN!!!!:
52
+ XML::Smart::Dom::Element#add (renamed from append_child)
53
+ XML::Smart::Dom::Element#add_before (renamed from insert_sibling_before)
54
+ XML::Smart::Dom::Element#add_after (renamed from insert_sibling_after)
55
+ XML::Smart::Dom::Element#replace_by (NEW)
56
+ -> add has now the ability to use other nodes (from same or other DOM's)
57
+ as input
58
+ -> #add_before, #add_after are now working, same parameters as with #add
59
+ are possible
60
+ -> examples/add_children.rb, examples/add_elements.rb
61
+ * #add, #add_before and #add_after are able to ::COPY/::MOVE the results of
62
+ xpath searches (only the elements)
63
+ -> example/move_children.rb
64
+ * XML::Smart::Dom#root= is possible (simple replace_by, for root only)
65
+ * TODO: Documentation is not available at all yet, copy over the pieces from
66
+ Emmanuel
67
+ * Changed XML::Smart::Dom::AttributeSet#has_key? to
68
+ XML::Smart::Dom::AttributeSet#has_attr?
69
+ * Changed XML::Smart::Dom::AttributeSet#get to
70
+ XML::Smart::Dom::AttributeSet#get_attr
71
+ * Added XML::Smart::Dom::AttributeSet#add
72
+ * Added XML::Smart#new (same as #string), inspired by Ruediger Sonderfeld
73
+
74
+ 0.1.7 "Horseman break things" Features + Breaking the API
75
+ * added support for numbers, booleans and strings as return value from an
76
+ xpath
77
+ * extconf.rb cleanup
78
+ * examples/count.rb
79
+ * WARNING: XML::Simple::DOM::NodeSet#clear renamed to #delete_all!
80
+ This can break your application, but the name clear was no good idea at
81
+ all because it behaves very different from Array#clear
82
+ * WARNING: removed #inspect from rbxs_dom.c, rbxs_pull.c - so #inspect
83
+ behaves no longer like #to_s, at least as long as I can find
84
+ something more useful
85
+ * WARNING: remoded XML::Simple::DOM::AttributeSet#delete. This may break
86
+ your program
87
+ * Added:
88
+ XML::Simple::DOM::NodeSet#delete_if!
89
+ XML::Simple::DOM::NodeSet#delete_at!
90
+ XML::Simple::DOM::NodeSet#nitems
91
+ When deleting elements, the entries in the NodeSet will be set to nil.
92
+ #nitems works according to Array#nitems.Nodesets have now Enumerable
93
+ mixed in.
94
+ * Added:
95
+ XML::Simple::DOM::AttributeSet#each (node.attributes.each { |n| })
96
+ Nodesets have now Enumerable mixed in.
97
+ * Renamed XML::Simple::Dom::Node to XML::Simple::Dom::Element and added:
98
+ XML::Simple::DOM::Element#path (uniquely identify the node)
99
+ XML::Simple::DOM::Element#empty? (no children)
100
+ XML::Simple::DOM::Element#mixed? (element and text nodes as children)
101
+ * Added:
102
+ XML::Simple::DOM::Attribute#path (uniquely identify the node)
103
+ XML::Simple::DOM::Attribute#element (associated element)
104
+ * Added XML::Simple::DOM::Text, so you have to check the #class. It has:
105
+ XML::Simple::DOM::Text#to_s
106
+ XML::Simple::DOM::Text#to_i
107
+ XML::Simple::DOM::Text#to_f
108
+ XML::Simple::DOM::Text#text
109
+ XML::Simple::DOM::Text#text=
110
+ XML::Simple::DOM::Text#parent
111
+ XML::Simple::DOM::Text#path
112
+ * Added XML::Simple::DOM#find so that doc.find("*") selects the root not,
113
+ doc.root.find("*") select all elements beneath root. This is standard
114
+ behaviour.
115
+ * Examples: Cleanup and cool new stuff.
116
+ LOOK at examples/Visualise
117
+ * Rename to XML::Smart
118
+
119
+ 0.1.6 "Investigating the not so obvious"
120
+ * added examples/replace.rb
121
+ * added rb_gc_start() when a new document is parsed,
122
+ example/replace.rb freezes after 600 parses, if this is not done.
123
+ I can only assume, that there is an internal limit in libxml. ruby starts
124
+ gc'ing when about 7 MB of memory are allocated.
125
+ Investigiating this further is maybe necessary, cause I don't understand
126
+ the effect fully.
127
+ * added XML::Simple::DOM::Attribute#to_i
128
+ * changed behaviour of XML::Simple::file, the string that is used for
129
+ creating te document is no longer the name of the root element, but free
130
+ form
131
+ OLD: XML::Simple.file("test.xml",test) resulting in
132
+ <?xml version="1.0"?><test/>
133
+ NEW: XML::Simple.file("test.xml","<test/>") resulting in
134
+ <?xml version="1.0"?><test/>
135
+ Drawback: you can initialize documents that are not wellformed, but i
136
+ think the new way is much more convenient
137
+ * changed examples/create.rb
138
+ * added XML::Simple::DOM::Node#to_f
139
+ * added XML::Simple::DOM::Node#children?
140
+ * added XML::Simple::DOM::Attribute#to_f
141
+ * added XML::Simple::DOM::Attribute#has_key?
142
+ * removed XML::Simple::DOM::Attribute#at
143
+ * changed XML::Simple::DOM::Node#inspect - behaves like expected now
144
+ * added XML::Simple::DOM::Node#dump - output a Nodes XML representation
145
+ * all #to_i behave like expected (with base as optional parameter)
146
+
147
+ 0.1.5 "All work and no play ..." Features
148
+ * XML::Simple::Dom::Node#parent
149
+ * XML::Simple::Dom::Node#to_i
150
+ * XML::Simple::Dom#save_as
151
+ * XML::Simple#string
152
+ * improved locking
153
+ * started testing in semi-production environment
154
+ * cleanup and reorganisation
155
+ * examples/string.rb
156
+
157
+ 0.1.4 "Pull Perfection" Bugfixes + Features
158
+ * #append_child and the other functions now need only 1 paramter (thanks to
159
+ Emmanuel Touzery)
160
+ * domattributeset.* and pullattributeset.* to keep things logical
161
+ * pullattribute as specialized returntype when accessing attributes via pull
162
+ * small changes to nodes.c and attributes.c to remove a bug (to enthusiastic
163
+ xmlFree)
164
+ * additional cleanup and renaming
165
+ * added Christian Neukirchen to AUTHORS
166
+
167
+ 0.1.3 "Teamwork" - Bugfixes + Features
168
+ * Merged patch that adds XML::Simple::Node#name, contributed by
169
+ <emmanuel dot touzery at wanadoo dot fr>
170
+ * Restructuring of the code, rbxs_base.* was renamed to rbxs_do.*, the
171
+ skeletons for the constructors and the module initialisation moved to
172
+ rbxs.c, to improve the design
173
+ Together with Christian Neukirchen: <chneukirchen at gmail dot com>
174
+ * Added XML::Simple::QName, XML::Simple::Node#name, returns a QName object,
175
+ that has #name, #prefix, and #namespace.
176
+ * Added the first implementation of a pull parser, by borrowing ideas and
177
+ code from chris' ruby/dl implementation. XML::Simple.pull(File)
178
+ * Added examples/pull.rb for first demonstration
179
+
180
+ 0.1.2 "Session with Klaus" - Bugfixes + Features
181
+ * rbxs_nodeset.c - each now works as expected
182
+ * rbxs_base.c - changed open to (name,root[,encoding]), which creates a
183
+ file named name unless File.exists?
184
+ * examples/create.rb - added
185
+
186
+ 0.1.1 "The morning after" - Bugfixes
187
+ * Fixed memleaks in attributeset.c
188
+ * Added examples/xpath_attrs.rb
189
+ * Changed example names and added comments
190
+
191
+ 0.1.0 "First Strike"
192
+ * Basic Features
data/README ADDED
@@ -0,0 +1,52 @@
1
+ == XML::Smart - A Ruby class for fast and simple XML access
2
+
3
+ Copyright (C) 2004-2007 Jürgen Mangler <juergen.mangler@univie.ac.at>
4
+
5
+ Ruby/XML/Smart is freely distributable according to the terms of the
6
+ GNU Lesser General Public License (see the file 'COPYING').
7
+
8
+ This program is distributed without any warranty. See the file
9
+ 'COPYING' for details.
10
+
11
+ == Installation
12
+
13
+ * You need a least ruby 1.8.6
14
+ * You need a least rake 0.5.0
15
+ * a libxml version known to work is 1.6.28
16
+
17
+ The installation process is very simple:
18
+
19
+ * rake
20
+ * [become root]
21
+ * rake install
22
+
23
+ == Documentation
24
+
25
+ View the examples in the ./examples subdirectory. In the ./examples/Visualise subdirectory
26
+ you can find a simple XPath visualiser. Never try to mix this module with the old libxml
27
+ binding, or you will get nasty segfaults.
28
+
29
+ === SYNOPSIS TO CHANGE A FILE ON THE DISK
30
+
31
+ require 'xml/smart'
32
+
33
+ XML::Smart.modify(File.dirname($0) + "/EXAMPLE.xml") { |doc|
34
+ node = doc.find("/test/names").first
35
+ node.add("test_node",{"attr" => 12}, "Muahaha")
36
+ node.add("test_node", "Muahaha", {"attr" => 13})
37
+ node.add("test_node", {"attr" => 14})
38
+ node.add("test_node", "Muahaha")
39
+ node.add("test_node")
40
+ }
41
+
42
+ === SYNOPSIS TO QUERY A FILE
43
+
44
+ require 'xml/smart'
45
+
46
+ doc = XML::Smart.open(File.dirname($0) + "/EXAMPLE.xml")
47
+
48
+ node = doc.find("/test/names").first
49
+ node.add("test_node",{"attr" => 12}, "Muahaha")
50
+ node.add("test_node", "Muahaha", {"attr" => 13})
51
+ node.add("test_node", {"attr" => 14})
52
+ node.add("test_node", "Muahaha")
data/Rakefile ADDED
@@ -0,0 +1,112 @@
1
+ require 'rubygems'
2
+ require 'rake/clean'
3
+ require 'rake/rdoctask'
4
+ require 'rake/testtask'
5
+ require 'rake/gempackagetask'
6
+ require 'rdoc/rdoc'
7
+
8
+ PKG_FILE = 'ruby-xml-smart'
9
+ PKG_FILES = Dir.glob("_darcs/current/**/*").collect{ |i| i.gsub(/_darcs\/current\//,"") }
10
+ PKG_VERSION = File.read('rbxs.h').to_s.match(/RBXS_VERSION\s+"([^"]+)"/)[1]
11
+ PKG_CURRENT = PKG_FILE + "-" + PKG_VERSION
12
+
13
+ task :default => [:config, :compile]
14
+
15
+ desc "Configuring library"
16
+ task :config do
17
+ unless File.exists?('extconf.h')
18
+ ruby 'extconf.rb'
19
+ end
20
+ end
21
+
22
+ desc "Compiling library"
23
+ task :compile => :config do
24
+ system "make"
25
+ end
26
+
27
+ desc "Installing library"
28
+ task :install => [:compile,:doc] do
29
+ print "ROOT "
30
+ system "su -c 'make install'"
31
+ end
32
+
33
+ desc "Clean directory"
34
+ task :clean do
35
+ if File.exists?("_darcs")
36
+ Dir.glob("**/*").collect{ |i| i unless i=~/^_darcs/ || i=~/^rdoc/ || i=~/^extconf/ || i=~/^Makefile/ }.compact.each { |i|
37
+ unless PKG_FILES.include?(i)
38
+ rm_r i if File.exists?(i)
39
+ end
40
+ }
41
+ else
42
+ system "make clean"
43
+ end
44
+ end
45
+ task :distclean do
46
+ if File.exists?("_darcs")
47
+ Dir.glob("**/*").collect{ |i| i unless i=~/_darcs/ }.compact.each { |i|
48
+ unless PKG_FILES.include?(i)
49
+ rm_r i if File.exists?(i)
50
+ end
51
+ }
52
+ else
53
+ system "make distclean"
54
+ end
55
+ end
56
+
57
+ spec = Gem::Specification.new do |s|
58
+ s.name = PKG_FILE
59
+ s.version = PKG_VERSION
60
+ s.author = "Jürgen Mangler"
61
+ s.email = "juergen.mangler@univie.ac.at"
62
+ s.homepage = "http://raa.ruby-lang.org/project/ruby-xml-smart/"
63
+ s.platform = Gem::Platform::CURRENT
64
+ s.summary = 'easy to use and stable libxml2 binding'
65
+ s.files = PKG_FILES
66
+ s.test_files = FileList["{test}/*_test.rb"].to_a
67
+ s.require_path = '.'
68
+ s.has_rdoc = true
69
+ s.extensions = 'extconf.rb'
70
+ s.autorequire = 'smart'
71
+ s.rdoc_options << '--charset=utf8' << '--line-numbers' << '--inline'
72
+ s.extra_rdoc_files = ["README"]
73
+ s.required_ruby_version = '>= 1.8.6'
74
+ end
75
+
76
+ Rake::GemPackageTask.new(spec) do |pkg|
77
+ pkg.need_tar = true
78
+ end
79
+
80
+ desc "Generating RDoc documentation"
81
+ Rake::RDocTask.new(:doc) do |rdoc|
82
+ rdoc.options << '--charset=utf8' << '--line-numbers' << '--inline'
83
+ rdoc.main = 'README'
84
+ rdoc.rdoc_dir = 'rdoc'
85
+ rdoc.rdoc_files.include 'README'
86
+ rdoc.rdoc_files.include 'rbxs.c'
87
+ rdoc.rdoc_files.include 'rbxs_dom.c'
88
+ rdoc.rdoc_files.include 'rbxs_qname.c'
89
+ rdoc.rdoc_files.include 'rbxs_domelement.c'
90
+ rdoc.rdoc_files.include 'rbxs_domnodeset.c'
91
+ rdoc.rdoc_files.include 'rbxs_domattribute.c'
92
+ rdoc.rdoc_files.include 'rbxs_domattributeset.c'
93
+ rdoc.rdoc_files.include 'rbxs_domnamespace.c'
94
+ rdoc.rdoc_files.include 'rbxs_domnamespaceset.c'
95
+ rdoc.rdoc_files.include 'rbxs_domtext.c'
96
+ rdoc.rdoc_files.include 'rbxs_domother.c'
97
+ rdoc.rdoc_files.include 'rbxs_pull.c'
98
+ rdoc.rdoc_files.include 'rbxs_pullattributeset.c'
99
+ rdoc.rdoc_files.include 'rbxs_pullattribute.c'
100
+ end
101
+
102
+ desc "Creating package"
103
+ task :darcs_package do
104
+ system "export DARCS_REPO=#{Dir.pwd}; " +
105
+ "darcs dist -d #{PKG_CURRENT}"
106
+ end
107
+
108
+ Rake::TestTask.new do |t|
109
+ t.libs << "test"
110
+ t.pattern = "test/*_test.rb"
111
+ t.verbose = true
112
+ end
data/TODO ADDED
@@ -0,0 +1,6 @@
1
+ Todo + Ideas:
2
+
3
+ * add apply_style to dom (apply xslts) - keep in touch with Ken Wronkiewicz <wh at wirewd dot com>
4
+ who is interessted in this (I don't like the API's from Gregoire Lejeune but they are usable)
5
+ * create detailed documention, not only examples
6
+ * create unit test
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <test xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
3
+ <names>
4
+ <name team="0" a="3">Renate</name>
5
+ <name team="1">J�rgen</name>
6
+ <name team="1">Michel</name>
7
+ <name team="1">Raphi</name>
8
+ <name team="2">Kathrin <b>Fiedler</b></name>
9
+ <name team="2">Egon</name>
10
+ </names>
11
+ <colors>
12
+ <blue taint="true">Yeah</blue>
13
+ <red taint="true"></red>
14
+ <green taint="true"/>
15
+ </colors>
16
+ <soap:hallo/>
17
+ </test>
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <test xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
3
+ <names>
4
+ <name team="0">Renate</name>
5
+ <name team="1">J�rgen</name>
6
+ <name team="1">Michel</name>
7
+ <name team="1">Raphi</name>
8
+ <name team="2">Kathrin <b>Fiedler</b></name>
9
+ <name team="2">Egon</name>
10
+ </names>
11
+ <colors>
12
+ <blue taint="true">Yeah</blue>
13
+ <red taint="true"></red>
14
+ <green taint="true"/>
15
+ </colors>
16
+ <soap:hallo/>
17
+ </test>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <test xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" attr1="a" attr2="b">
3
+ <names>
4
+ <name team="0">Sun Apr 03 14:53:20 CEST 2005</name>
5
+ <name team="1">J�rgen</name>
6
+ <name team="1">Michel</name>
7
+ <name team="1">Raphi</name>
8
+ <name team="2">Kathrin <b>Fiedler</b> MBA</name>
9
+ <name team="5">egon</name>
10
+ </names>
11
+ <colors>
12
+ <blue taint="true">Yeah</blue>
13
+ <red taint="true"/>
14
+ <green taint="true"/>
15
+ </colors>
16
+ <hallo>Hallo1</hallo>
17
+ <soap:hallo>Hallo2</soap:hallo>
18
+ </test>
@@ -0,0 +1,11 @@
1
+ 2004-09-28 * 0.0.4 * First release on Rubyforge
2
+ * Supports Rubygems now
3
+ 2003-10-09 * 0.0.3 * Added uncolored method as suggested by
4
+ Thomas Husterer <Thomas.Husterer@heidelberg.com>
5
+ * Added attribute methods with string arguments
6
+ * Deleted now unused files
7
+
8
+ 2002-07-27 * 0.0.2 * Minor Code Cleanup
9
+ * Added cdiff.rb
10
+
11
+ 2002-06-12 * 0.0.1 * Initial Release