ruby-xml-smart 0.1.11-i486-linux

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.
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