roxml 2.4.1 → 2.4.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +21 -0
- data/MIT-LICENSE +1 -1
- data/Manifest.txt +27 -6
- data/Rakefile +2 -2
- data/TODO +35 -14
- data/config/website.yml +2 -0
- data/examples/amazon.rb +33 -0
- data/examples/current_weather.rb +27 -0
- data/examples/dashed_elements.rb +20 -0
- data/examples/posts.rb +27 -0
- data/examples/twitter.rb +37 -0
- data/examples/xml/amazon.xml +133 -0
- data/examples/xml/current_weather.xml +89 -0
- data/examples/xml/dashed_elements.xml +52 -0
- data/examples/xml/posts.xml +23 -0
- data/examples/xml/twitter.xml +422 -0
- data/lib/roxml.rb +35 -6
- data/lib/roxml/{options.rb → definition.rb} +60 -88
- data/lib/roxml/extensions.rb +3 -0
- data/lib/roxml/hash_definition.rb +59 -0
- data/lib/roxml/xml.rb +15 -272
- data/lib/roxml/xml/{libxml.rb → parsers/libxml.rb} +13 -5
- data/lib/roxml/xml/{rexml.rb → parsers/rexml.rb} +13 -4
- data/lib/roxml/xml/references.rb +290 -0
- data/roxml.gemspec +4 -4
- data/spec/examples/amazon_spec.rb +53 -0
- data/spec/examples/current_weather_spec.rb +37 -0
- data/spec/examples/dashed_elements_spec.rb +20 -0
- data/spec/examples/post_spec.rb +24 -0
- data/spec/examples/twitter_spec.rb +32 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +16 -0
- data/tasks/rspec.rake +21 -0
- data/test/unit/definition_test.rb +160 -0
- data/test/unit/inheritance_test.rb +22 -1
- data/test/unit/roxml_test.rb +30 -1
- data/test/unit/xml_name_test.rb +29 -0
- data/test/unit/xml_namespace_test.rb +38 -1
- data/website/index.html +98 -0
- metadata +30 -9
- data/html/index.html +0 -278
- data/html/style.css +0 -79
- data/test/unit/options_test.rb +0 -103
data/website/index.html
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
|
4
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
5
|
+
<head>
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
7
|
+
|
8
|
+
<title>Empact/roxml @ GitHub</title>
|
9
|
+
|
10
|
+
<style type="text/css">
|
11
|
+
body {
|
12
|
+
margin-top: 1.0em;
|
13
|
+
background-color: #baafdb;
|
14
|
+
font-family: "helvetica";
|
15
|
+
color: #000000;
|
16
|
+
}
|
17
|
+
#container {
|
18
|
+
margin: 0 auto;
|
19
|
+
width: 700px;
|
20
|
+
}
|
21
|
+
h1 { font-size: 3.8em; color: #455024; margin-bottom: 3px; }
|
22
|
+
h1 .small { font-size: 0.4em; }
|
23
|
+
h1 a { text-decoration: none }
|
24
|
+
h2 { font-size: 1.5em; color: #455024; }
|
25
|
+
h3 { text-align: center; color: #455024; }
|
26
|
+
a { color: #455024; }
|
27
|
+
.description { font-size: 1.2em; margin-bottom: 30px; margin-top: 30px; font-style: italic;}
|
28
|
+
.download { float: right; }
|
29
|
+
pre { background: #000; color: #fff; padding: 15px;}
|
30
|
+
hr { border: 0; width: 80%; border-bottom: 1px solid #aaa}
|
31
|
+
.footer { text-align:center; padding-top:30px; font-style: italic; }
|
32
|
+
</style>
|
33
|
+
|
34
|
+
</head>
|
35
|
+
|
36
|
+
<body>
|
37
|
+
<a href="http://github.com/Empact/roxml"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
|
38
|
+
|
39
|
+
<div id="container">
|
40
|
+
|
41
|
+
<div class="download">
|
42
|
+
<a href="http://github.com/Empact/roxml/zipball/master">
|
43
|
+
<img border="0" width="90" src="http://github.com/images/modules/download/zip.png"></a>
|
44
|
+
<a href="http://github.com/Empact/roxml/tarball/master">
|
45
|
+
<img border="0" width="90" src="http://github.com/images/modules/download/tar.png"></a>
|
46
|
+
</div>
|
47
|
+
|
48
|
+
<h1><a href="http://github.com/Empact/roxml">roxml</a>
|
49
|
+
<span class="small">by <a href="http://github.com/Empact">Empact</a></small></h1>
|
50
|
+
|
51
|
+
<div class="description">
|
52
|
+
ROXML is a module for binding Ruby classes to XML. It supports custom mapping and bidirectional marshaling between Ruby and XML using annotation-style class methods. ROXML supports the LibXML and REXML XML processors.
|
53
|
+
</div>
|
54
|
+
|
55
|
+
<p>We may not want to work with XML, but we don't always get to pick just how our data comes. If you do need to do serious work with XML, ROXML is here to make it nice.
|
56
|
+
|
57
|
+
Use xpath-based xml declarations to map an XML response into an extensible object, use that object, and then ouput it back to xml as it came.
|
58
|
+
|
59
|
+
Aside from the basics, ROXML has a lot of little goodies to make these definitions minimal and readable, which are worth digging in for. See the 'xml_convention' method for easily referencing xml which uses other naming conventions. See the handling of '?' in accessor names, the application of blocks and such for other manipulations.
|
60
|
+
|
61
|
+
And finally, if you use this library, feel free to push code back my way. I'll be looking forward to it.</p><h2>Dependencies</h2>
|
62
|
+
<p>activesupport >= 2.1.0</p>
|
63
|
+
<h2>Install</h2>
|
64
|
+
<p>'gem install roxml' will install the latest stable <a href="http://rubyforge.org/frs/?group_id=305">rubyforge version</a></p>
|
65
|
+
<h2>License</h2>
|
66
|
+
<p>MIT License</p>
|
67
|
+
<h2>Authors</h2>
|
68
|
+
<p>Ben Woosley (ben.woosley@gmail.com)
|
69
|
+
<br/>Anders Engström (anders.engstrom@gnejs.net)
|
70
|
+
<br/>James Thompson (james@plainprograms.com)
|
71
|
+
<br/>James Healy (jimmy@deefa.com)
|
72
|
+
<br/>Zak Mandhro (mandhro@yahoo.com)
|
73
|
+
<br/>Russ Olsen (russell.olsen@gmail.com)</p>
|
74
|
+
<h2>Contact</h2>
|
75
|
+
<p>Ben Woosley (Ben.Woosley@gmail.com)
|
76
|
+
<br/> </p>
|
77
|
+
|
78
|
+
|
79
|
+
<h2>Download</h2>
|
80
|
+
<p>
|
81
|
+
You can download this project in either
|
82
|
+
<a href="http://github.com/Empact/roxml/zipball/master">zip</a> or
|
83
|
+
<a href="http://github.com/Empact/roxml/tarball/master">tar</a> formats.
|
84
|
+
</p>
|
85
|
+
<p>You can also clone the project with <a href="http://git-scm.com">Git</a>
|
86
|
+
by running:
|
87
|
+
<pre>$ git clone git://github.com/Empact/roxml</pre>
|
88
|
+
</p>
|
89
|
+
|
90
|
+
<div class="footer">
|
91
|
+
get the source code on GitHub : <a href="http://github.com/Empact/roxml">Empact/roxml</a>
|
92
|
+
</div>
|
93
|
+
|
94
|
+
</div>
|
95
|
+
|
96
|
+
|
97
|
+
</body>
|
98
|
+
</html>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roxml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Woosley
|
@@ -12,7 +12,7 @@ autorequire:
|
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
14
|
|
15
|
-
date: 2009-01-
|
15
|
+
date: 2009-01-31 00:00:00 -05:00
|
16
16
|
default_executable:
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
@@ -62,9 +62,20 @@ files:
|
|
62
62
|
- README.rdoc
|
63
63
|
- Rakefile
|
64
64
|
- TODO
|
65
|
-
-
|
66
|
-
-
|
65
|
+
- config/website.yml
|
66
|
+
- examples/amazon.rb
|
67
|
+
- examples/current_weather.rb
|
68
|
+
- examples/dashed_elements.rb
|
69
|
+
- examples/posts.rb
|
70
|
+
- examples/twitter.rb
|
71
|
+
- examples/xml/amazon.xml
|
72
|
+
- examples/xml/current_weather.xml
|
73
|
+
- examples/xml/dashed_elements.xml
|
74
|
+
- examples/xml/posts.xml
|
75
|
+
- examples/xml/twitter.xml
|
67
76
|
- lib/roxml.rb
|
77
|
+
- lib/roxml/definition.rb
|
78
|
+
- lib/roxml/extensions.rb
|
68
79
|
- lib/roxml/extensions/active_support.rb
|
69
80
|
- lib/roxml/extensions/array.rb
|
70
81
|
- lib/roxml/extensions/array/conversions.rb
|
@@ -72,11 +83,20 @@ files:
|
|
72
83
|
- lib/roxml/extensions/string.rb
|
73
84
|
- lib/roxml/extensions/string/conversions.rb
|
74
85
|
- lib/roxml/extensions/string/iterators.rb
|
75
|
-
- lib/roxml/
|
86
|
+
- lib/roxml/hash_definition.rb
|
76
87
|
- lib/roxml/xml.rb
|
77
|
-
- lib/roxml/xml/libxml.rb
|
78
|
-
- lib/roxml/xml/rexml.rb
|
88
|
+
- lib/roxml/xml/parsers/libxml.rb
|
89
|
+
- lib/roxml/xml/parsers/rexml.rb
|
90
|
+
- lib/roxml/xml/references.rb
|
79
91
|
- roxml.gemspec
|
92
|
+
- spec/examples/amazon_spec.rb
|
93
|
+
- spec/examples/current_weather_spec.rb
|
94
|
+
- spec/examples/dashed_elements_spec.rb
|
95
|
+
- spec/examples/post_spec.rb
|
96
|
+
- spec/examples/twitter_spec.rb
|
97
|
+
- spec/spec.opts
|
98
|
+
- spec/spec_helper.rb
|
99
|
+
- tasks/rspec.rake
|
80
100
|
- tasks/test.rake
|
81
101
|
- test/bugs/rexml_bugs.rb
|
82
102
|
- test/fixtures/book_malformed.xml
|
@@ -114,9 +134,9 @@ files:
|
|
114
134
|
- test/release/dependencies_test.rb
|
115
135
|
- test/test_helper.rb
|
116
136
|
- test/unit/array_test.rb
|
137
|
+
- test/unit/definition_test.rb
|
117
138
|
- test/unit/freeze_test.rb
|
118
139
|
- test/unit/inheritance_test.rb
|
119
|
-
- test/unit/options_test.rb
|
120
140
|
- test/unit/overriden_output_test.rb
|
121
141
|
- test/unit/roxml_test.rb
|
122
142
|
- test/unit/string_test.rb
|
@@ -137,6 +157,7 @@ files:
|
|
137
157
|
- vendor/override_rake_task/init.rb
|
138
158
|
- vendor/override_rake_task/install.rb
|
139
159
|
- vendor/override_rake_task/lib/override_rake_task.rb
|
160
|
+
- website/index.html
|
140
161
|
has_rdoc: true
|
141
162
|
homepage: http://roxml.rubyforge.org
|
142
163
|
post_install_message:
|
@@ -173,8 +194,8 @@ test_files:
|
|
173
194
|
- test/unit/xml_bool_test.rb
|
174
195
|
- test/unit/roxml_test.rb
|
175
196
|
- test/unit/xml_name_test.rb
|
197
|
+
- test/unit/definition_test.rb
|
176
198
|
- test/unit/xml_construct_test.rb
|
177
|
-
- test/unit/options_test.rb
|
178
199
|
- test/unit/string_test.rb
|
179
200
|
- test/unit/xml_namespace_test.rb
|
180
201
|
- test/unit/xml_text_test.rb
|
data/html/index.html
DELETED
@@ -1,278 +0,0 @@
|
|
1
|
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
<title>ROXML - Ruby Object to XML Mapping Library</title>
|
19
|
-
</head>
|
20
|
-
|
21
|
-
|
22
|
-
<body>
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
<div id="header" class="contentBlock">
|
28
|
-
<h1>ROXML - Ruby Object to XML Mapping Library</h1>
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
</div>
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
<div class="quickLinks"> <a href="#download">Download</a>
|
39
|
-
<a href="#quickstart">Quick Start Guide</a> <a href="http://rubyforge.org/projects/roxml">RubyForge Project
|
40
|
-
Site</a>
|
41
|
-
</div>
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
<div class="contentBlock">
|
47
|
-
<p>ROXML is a <a href="http://ruby-lang.org/" title="Main Ruby Website">Ruby</a> library
|
48
|
-
designed to make it easier for Ruby developers to work with <a href="http://en.wikipedia.org/wiki/XML">XML</a>.
|
49
|
-
Using
|
50
|
-
simple annotations, it enables Ruby classes to be custom-mapped to XML. ROXML
|
51
|
-
takes care of the marshalling and unmarshalling of mapped attributes so
|
52
|
-
that developers can focus on building first-class Ruby classes. As a
|
53
|
-
result, ROXML <span class="highlight">simplifies the
|
54
|
-
development of <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">RESTful</a> applications,
|
55
|
-
<a href="http://en.wikipedia.org/wiki/Web_Services">Web
|
56
|
-
Services</a>, and <a href="http://en.wikipedia.org/wiki/XML-RPC">XML-RPC</a>.</span></p>
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
<p>ROXML leverages the <a href="http://www.germane-software.com/software/rexml/">REXML</a>
|
62
|
-
Ruby XML processor. ROXML powers the <a href="http://rubyforge.org/projects/uddi4r">uddi4r -
|
63
|
-
UDDI for Ruby</a> project.</p>
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
<h2>ROXML 1.0 Features</h2>
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
ROXML 1.0 provides the following capabilities:<br>
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
<ul>
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
<li>Read Ruby objects from XML (marshal)</li>
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
<li>Write Ruby objects to XML (unmarshal)</li>
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
<li>Smart defaults for XML mapping</li>
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
<li>Annotation-style methods (also known as macros) for XML
|
99
|
-
mapping</li>
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
<li>One-to-one (composition) Ruby to XML</li>
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
<li>One-to-many (aggregation) Ruby with array to XML</li>
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
<li>UTF-8 support for multi-lingual documents</li>
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
</ul>
|
120
|
-
|
121
|
-
|
122
|
-
<h2>ROXML 1.1 Features</h2>
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
ROXML 1.1 adds the following new capabilities:
|
128
|
-
<ul>
|
129
|
-
<li>Handling text elements with attributes</li>
|
130
|
-
<li>Support for mapped Ruby objects in modules</li>
|
131
|
-
</ul>
|
132
|
-
<p><a name="download"></a> </p>
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
<h2>Download</h2>
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
<p>You can download source and library releases on the <a href="http://rubyforge.org/frs/?group_id=305">RubyForge
|
143
|
-
downloads</a> page. Alternatively, you can checkout the latest
|
144
|
-
source from <a href="http://rubyforge.org/scm/?group_id=305">CVS</a>.</p>
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
<p> <a name="quickstart"></a> </p>
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
<h2>Quick Start Guide</h2>
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
<p>
|
160
|
-
This is a short usage example. See <a href="../doc/classes/ROXML/ROXML_Class.html">ROXML::ROXML_Class</a> and
|
161
|
-
packaged test cases for more information.</p>
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
<p>
|
168
|
-
Consider an XML document representing a Library containing a number of
|
169
|
-
Books. You can map this structure to Ruby classes that provide addition
|
170
|
-
useful behavior. With ROXML, you can
|
171
|
-
annotate the Ruby classes as follows:</p>
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
<pre><code><span style="font-weight: bold;">class</span> Book<br> <span style="font-weight: bold;">include</span> ROXML<br><br> xml_attribute :isbn, "ISBN"<br> xml_text :title<br> xml_text :description, <span style="font-weight: bold;">nil</span>, ROXML::TAG_CDATA<br> xml_text :author<span style="font-weight: bold;"></span><br><span style="font-weight: bold;">end</span><br><br><span style="font-weight: bold;">class</span> Library<br> <span style="font-weight: bold;">include</span> ROXML<br><br> xml_text :name, "NAME", ROXML::TAG_CDATA<br> xml_object :books, Book, ROXML::TAG_ARRAY, "books"<br><span style="font-weight: bold;">end</span><br></code><br></pre>
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
<p>To create a library and put a number of books in it, we could
|
182
|
-
run the following code:</p>
|
183
|
-
|
184
|
-
|
185
|
-
<pre> book = Book.<span style="font-weight: bold;">new</span>()<br> book.isbn = "0201710897"<br> book.title = "The PickAxe"<br> book.description = "Best Ruby book out there!"<br> book.author = "David Thomas, Andrew Hunt, Dave Thomas"<br><br> lib = Library.<span style="font-weight: bold;">new</span>()<br> lib.name = "Favorite Books"<br> lib.books << book</pre>
|
186
|
-
|
187
|
-
|
188
|
-
<p>To save this information to an XML file:</p>
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
<pre><code>File.open("library.xml", "w") <span style="font-weight: bold;">do</span> |f|<br> lib.to_xml.write(f, 0)<br><span style="font-weight: bold;">end</span><br></code><br></pre>
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
<p>This would put the following XML into <em>library.xml</em>:</p>
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
<pre><code><library><br> <NAME><![CDATA[Favorite Books]]></NAME><br> <books><br> <book ISBN='0201710897'><br> <title>The PickAxe</title><br> <description><![CDATA[Best Ruby book out there!]]></description><br> <author>David Thomas, Andrew Hunt, Dave Thomas</author><br> </book><br> </books><br></library></code><br></pre>
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
<p>To later populate the library object from the XML file:</p>
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
<pre> <code>lib = Library.parse(File.read("library.xml"))<br></code><br></pre>
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
<p>To do a one-to-one mapping between XML objects, such as book
|
219
|
-
and publisher,
|
220
|
-
you would use the <em>xml_object</em> annotation. For
|
221
|
-
example:</p>
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
<pre><code><book isbn="0974514055"><br> <title>Programming Ruby - 2nd Edition</title><br> <description>Second edition of the great book</description><br> <publisher><br> <name>Pragmatic Bookshelf</name><br> </publisher><br></book><br></code><br></pre>
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
<p>Can be mapped using the following code:</p>
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
<pre><code><span style="font-weight: bold;">class</span> BookWithPublisher<br> <span style="font-weight: bold;">include</span> ROXML<br><br> xml_name :book<br> xml_object :publisher, Publisher<br><span style="font-weight: bold;">end</span><br></code><br></pre>
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
<p>Note: In the above example, <em>xml_name</em>
|
242
|
-
annotation tells ROXML to set the element
|
243
|
-
name to "book" for mapping to XML. The default is XML element name is
|
244
|
-
the class name in lowercase; "bookwithpublisher"
|
245
|
-
in this case.</p>
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
</div>
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
<div id="footer" class="contentBlock">
|
256
|
-
<p>ROXML is licensed under the MIT License. See
|
257
|
-
bundled MIT-LICENSE.txt for details. ROXML was created by <a href="http://rubyforge.org/users/andersengstrom">Anders
|
258
|
-
Engstrom</a> and is being developed and maintained by <a href="http://rubyforge.org/users/zakmandhro">Zak Mandhro</a>. For
|
259
|
-
project tracking, downloads, and other information, visit
|
260
|
-
the <a href="http://rubyforge.org/projects/roxml">ROXML
|
261
|
-
RubyForge Project</a> page.</p>
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
</div>
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
<div id="cvs_id">$Id: INDEX,v 1.6 2006/06/28 03:52:38
|
272
|
-
zakmandhro Exp $</div>
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
</body>
|
278
|
-
</html>
|