xml-mapping 0.8.1 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +64 -3
- data/README +871 -173
- data/README_XPATH +40 -13
- data/Rakefile +37 -26
- data/TODO.txt +39 -8
- data/examples/README +5 -0
- data/examples/company_usage.intout +34 -22
- data/examples/documents_folders.rb +31 -0
- data/examples/documents_folders.xml +16 -0
- data/examples/documents_folders_usage.intin.rb +18 -0
- data/examples/documents_folders_usage.intout +46 -0
- data/examples/order_signature_enhanced_usage.intout +21 -11
- data/examples/order_usage.intin.rb +52 -5
- data/examples/order_usage.intout +154 -80
- data/examples/person.intin.rb +44 -0
- data/examples/person.intout +27 -0
- data/examples/person_mm.intin.rb +119 -0
- data/examples/person_mm.intout +114 -0
- data/examples/publication.intin.rb +44 -0
- data/examples/publication.intout +20 -0
- data/examples/reader.intin.rb +33 -0
- data/examples/reader.intout +19 -0
- data/examples/stringarray.rb +5 -0
- data/examples/stringarray.xml +10 -0
- data/examples/stringarray_usage.intin.rb +11 -0
- data/examples/stringarray_usage.intout +31 -0
- data/examples/time_augm.intout +19 -7
- data/examples/time_augm_loading.intin.rb +44 -0
- data/examples/time_augm_loading.intout +12 -0
- data/examples/time_node.intin.rb +79 -0
- data/examples/time_node.rb +3 -2
- data/examples/time_node_w_marshallers.intin.rb +48 -0
- data/examples/time_node_w_marshallers.intout +25 -0
- data/examples/time_node_w_marshallers.xml +9 -0
- data/examples/xpath_create_new.intout +132 -114
- data/examples/xpath_ensure_created.intout +86 -65
- data/examples/xpath_pathological.intout +16 -16
- data/examples/xpath_usage.intout +1 -1
- data/install.rb +1 -0
- data/lib/xml/mapping.rb +3 -1
- data/lib/xml/mapping/base.rb +442 -272
- data/lib/xml/mapping/core_classes_mapping.rb +32 -0
- data/lib/xml/mapping/standard_nodes.rb +176 -86
- data/lib/xml/mapping/version.rb +2 -2
- data/lib/xml/rexml_ext.rb +186 -0
- data/lib/xml/xxpath.rb +28 -265
- data/lib/xml/xxpath/steps.rb +345 -0
- data/lib/xml/xxpath_methods.rb +96 -0
- data/test/all_tests.rb +4 -1
- data/test/benchmark_fixtures.rb +14 -0
- data/test/{multiple_mappings.rb → bookmarks.rb} +0 -0
- data/test/company.rb +47 -0
- data/test/documents_folders.rb +11 -1
- data/test/examples_test.rb +29 -0
- data/test/fixtures/benchmark.xml +77 -0
- data/test/fixtures/company1.xml +9 -0
- data/test/fixtures/documents_folders.xml +0 -8
- data/test/fixtures/documents_folders2.xml +13 -19
- data/test/fixtures/triangle_m1.xml +17 -0
- data/test/fixtures/triangle_m2.xml +19 -0
- data/test/inheritance_test.rb +50 -0
- data/test/multiple_mappings_test.rb +155 -0
- data/test/rexml_xpath_benchmark.rb +29 -0
- data/test/triangle_mm.rb +57 -0
- data/test/xml_mapping_adv_test.rb +36 -1
- data/test/xml_mapping_test.rb +136 -7
- data/test/xpath_test.rb +154 -0
- data/test/xxpath_benchmark.rb +36 -0
- data/test/xxpath_benchmark.result1.txt +17 -0
- data/test/xxpath_methods_test.rb +61 -0
- metadata +139 -90
data/test/xpath_test.rb
CHANGED
@@ -4,6 +4,7 @@ require 'test/unit'
|
|
4
4
|
|
5
5
|
require "rexml/document"
|
6
6
|
require "xml/xxpath"
|
7
|
+
require "xml/xxpath_methods"
|
7
8
|
|
8
9
|
|
9
10
|
class XPathTest < Test::Unit::TestCase
|
@@ -17,6 +18,24 @@ class XPathTest < Test::Unit::TestCase
|
|
17
18
|
<foo key='xy'>
|
18
19
|
y
|
19
20
|
<u/>
|
21
|
+
<bar barkey='hello'>
|
22
|
+
bar2
|
23
|
+
<bar barkey='hello'>
|
24
|
+
bar3
|
25
|
+
</bar>
|
26
|
+
<quux barkey='hello'>
|
27
|
+
quux1
|
28
|
+
</quux>
|
29
|
+
<bar>
|
30
|
+
bar4
|
31
|
+
</bar>
|
32
|
+
<foo>
|
33
|
+
z
|
34
|
+
<bar>
|
35
|
+
bar5
|
36
|
+
</bar>
|
37
|
+
</foo>
|
38
|
+
</bar>
|
20
39
|
</foo>
|
21
40
|
</bla>
|
22
41
|
EOS
|
@@ -43,6 +62,15 @@ class XPathTest < Test::Unit::TestCase
|
|
43
62
|
end
|
44
63
|
|
45
64
|
|
65
|
+
def test_read_bythisnode
|
66
|
+
assert_equal [@d.root], XML::XXPath.new(".").all(@d.root)
|
67
|
+
assert_equal @d.root.elements.to_a("foo"), XML::XXPath.new("foo/.").all(@d.root)
|
68
|
+
assert_equal @d.root.elements.to_a("foo"), XML::XXPath.new("foo/./././.").all(@d.root)
|
69
|
+
assert_equal @d.root.elements.to_a("foo")[0], XML::XXPath.new("foo/.").first(@d.root)
|
70
|
+
assert_equal @d.root.elements.to_a("foo")[0], XML::XXPath.new("foo/./././.").first(@d.root)
|
71
|
+
end
|
72
|
+
|
73
|
+
|
46
74
|
def test_read_byattr
|
47
75
|
assert_equal [@d.root.elements[3]], XML::XXPath.new("foo[@key='xy']").all(@d.root)
|
48
76
|
assert_equal [], XML::XXPath.new("foo[@key='notthere']").all(@d.root)
|
@@ -80,6 +108,56 @@ class XPathTest < Test::Unit::TestCase
|
|
80
108
|
assert_equal [], XML::XXPath.new("foo[3]/u").all(@d.root)
|
81
109
|
end
|
82
110
|
|
111
|
+
|
112
|
+
def test_read_alternative_names
|
113
|
+
assert_equal ["bar3","quux1","bar4"],
|
114
|
+
XML::XXPath.new("foo/bar/bar|quux").all(@d.root).map{|node|node.text.strip}
|
115
|
+
end
|
116
|
+
|
117
|
+
|
118
|
+
def test_read_attr
|
119
|
+
assert_equal [@d.root.elements[3]],
|
120
|
+
XML::XXPath.new(".[@key='xy']").all(@d.root.elements[3])
|
121
|
+
assert_equal [@d.root.elements[3]],
|
122
|
+
XML::XXPath.new("self::*[@key='xy']").all(@d.root.elements[3])
|
123
|
+
assert_equal [],
|
124
|
+
XML::XXPath.new(".[@key='xz']").all(@d.root.elements[3])
|
125
|
+
|
126
|
+
assert_equal [@d.root.elements[3]], @d.all_xpath("bla/foo[2]/.[@key='xy']")
|
127
|
+
assert_equal [@d.root.elements[3]], @d.all_xpath("bla/foo[2]/self::*[@key='xy']")
|
128
|
+
assert_equal [@d.root.elements[3]], @d.all_xpath("bla/*/.[@key='xy']")
|
129
|
+
assert_equal [@d.root.elements[3]], @d.all_xpath("bla/*/self::*[@key='xy']")
|
130
|
+
assert_equal [], @d.all_xpath("bla/foo[2]/.[@key='xy2']")
|
131
|
+
assert_equal [], @d.all_xpath("bla/foo[2]/.[@key2='xy']")
|
132
|
+
assert_equal [], @d.all_xpath("bla/foo[2]/self::*[@key2='xy']")
|
133
|
+
end
|
134
|
+
|
135
|
+
|
136
|
+
def test_read_textnodes
|
137
|
+
assert_equal ["bar3"], @d.root.all_xpath("foo[2]/bar/bar[1]/text()").map{|x|x.text.strip}
|
138
|
+
end
|
139
|
+
|
140
|
+
|
141
|
+
def test_read_descendant
|
142
|
+
assert_equal ["bar1","bar2","bar3","bar4","bar5"],
|
143
|
+
XML::XXPath.new("//bar").all(@d.root).map{|node|node.text.strip}
|
144
|
+
assert_equal ["bar2","bar3"],
|
145
|
+
XML::XXPath.new("//bar[@barkey='hello']").all(@d.root).map{|node|node.text.strip}
|
146
|
+
assert_equal ["bar2","bar5"],
|
147
|
+
XML::XXPath.new("//foo/bar").all(@d.root).map{|node|node.text.strip}
|
148
|
+
assert_equal ["bar3","bar4"],
|
149
|
+
XML::XXPath.new("//bar/bar").all(@d.root).map{|node|node.text.strip}
|
150
|
+
assert_equal ["bar2","bar3","bar4","bar5"],
|
151
|
+
XML::XXPath.new("foo//bar").all(@d.root).map{|node|node.text.strip}
|
152
|
+
assert_equal ["bar2","bar3","bar4","bar5","bar5"],
|
153
|
+
XML::XXPath.new("//foo//bar").all(@d.root).map{|node|node.text.strip}
|
154
|
+
assert_equal ["z"],
|
155
|
+
XML::XXPath.new("//bar//foo").all(@d.root).map{|node|node.text.strip}
|
156
|
+
assert_equal ["bar2","bar3","quux1"],
|
157
|
+
XML::XXPath.new("//@barkey").all(@d.root).map{|node|node.parent.text.strip}
|
158
|
+
end
|
159
|
+
|
160
|
+
|
83
161
|
def test_read_first
|
84
162
|
assert_equal @d.root.elements[3].elements[1], XML::XXPath.new("foo[2]/u").first(@d.root)
|
85
163
|
end
|
@@ -158,6 +236,69 @@ class XPathTest < Test::Unit::TestCase
|
|
158
236
|
end
|
159
237
|
|
160
238
|
|
239
|
+
def test_write_alternative_names
|
240
|
+
node = XML::XXPath.new("foo/bar/bar|quux").first(@d.root,:ensure_created=>true)
|
241
|
+
assert_equal XML::XXPath.new("foo/bar/bar").first(@d.root), node
|
242
|
+
|
243
|
+
node = XML::XXPath.new("foo/bar/bar|quux").create_new(@d.root)
|
244
|
+
assert node.unspecified?
|
245
|
+
end
|
246
|
+
|
247
|
+
|
248
|
+
def test_write_attr
|
249
|
+
assert_equal [@d.root.elements[3]], @d.all_xpath("bla/foo[2]/.[@key='xy']", :ensure_created=>true)
|
250
|
+
assert_equal "xy", @d.root.elements[3].attributes['key']
|
251
|
+
assert_equal [@d.root.elements[3]], @d.all_xpath("bla/foo[2]/self::*[@key2='ab']", :ensure_created=>true)
|
252
|
+
assert_equal "ab", @d.root.elements[3].attributes['key2']
|
253
|
+
assert_equal "xy", @d.root.elements[3].attributes['key']
|
254
|
+
|
255
|
+
assert_raises(XML::XXPathError) {
|
256
|
+
@d.root.elements[3].create_new_xpath ".[@key='xy']"
|
257
|
+
}
|
258
|
+
assert_raises(XML::XXPathError) {
|
259
|
+
@d.root.elements[3].create_new_xpath "self::*[@notthere='foobar']"
|
260
|
+
}
|
261
|
+
end
|
262
|
+
|
263
|
+
|
264
|
+
def test_write_textnodes
|
265
|
+
@d.root.create_new_xpath("morestuff/text()").text = "hello world"
|
266
|
+
assert_equal "hello world", @d.root.first_xpath("morestuff").text
|
267
|
+
end
|
268
|
+
|
269
|
+
|
270
|
+
def test_write_descendant
|
271
|
+
assert_equal @d.root.elements[3].elements[2].elements[2],
|
272
|
+
node1 = XML::XXPath.new("//bar[@barkey='hello']//quux").first(@d.root,:ensure_created=>true)
|
273
|
+
node1 = XML::XXPath.new("//bar[@barkey='hello']/hiho").first(@d.root,:ensure_created=>true)
|
274
|
+
assert_equal "hiho", node1.name
|
275
|
+
assert_equal @d.root.elements[3].elements[2], node1.parent
|
276
|
+
|
277
|
+
node1 = XML::XXPath.new("/foo//quux/new").first(@d.root,:ensure_created=>true)
|
278
|
+
assert_equal "new", node1.name
|
279
|
+
assert_equal @d.root.elements[3].elements[2].elements[2], node1.parent
|
280
|
+
|
281
|
+
assert_raises(XML::XXPathError) {
|
282
|
+
XML::XXPath.new("//bar[@barkey='hello']//new2").first(@d.root,:ensure_created=>true)
|
283
|
+
}
|
284
|
+
end
|
285
|
+
|
286
|
+
|
287
|
+
def test_write_bythisnode
|
288
|
+
s1 = @d.elements[1].elements.size
|
289
|
+
s2 = @d.elements[1].elements[1].elements.size
|
290
|
+
node = XML::XXPath.new("foo/././.").first(@d.root, :ensure_created=>true)
|
291
|
+
assert_equal @d.elements[1].elements[1], node
|
292
|
+
|
293
|
+
node = XML::XXPath.new("foo/new1/././.").first(@d.root, :ensure_created=>true)
|
294
|
+
assert_equal "new1", node.name
|
295
|
+
assert node.attributes.empty?
|
296
|
+
assert_equal @d.elements[1].elements[1].elements[1], node
|
297
|
+
assert_equal s1, @d.elements[1].elements.size
|
298
|
+
assert_equal s2+1, @d.elements[1].elements[1].elements.size
|
299
|
+
end
|
300
|
+
|
301
|
+
|
161
302
|
def test_create_new_byname
|
162
303
|
s1 = @d.elements[1].elements.size
|
163
304
|
s2 = @d.elements[1].elements[1].elements.size
|
@@ -258,6 +399,19 @@ class XPathTest < Test::Unit::TestCase
|
|
258
399
|
end
|
259
400
|
|
260
401
|
|
402
|
+
def test_create_new_bythisnode
|
403
|
+
s1 = @d.elements[1].elements.size
|
404
|
+
s2 = @d.elements[1].elements[1].elements.size
|
405
|
+
startnode = @d.elements[1].elements[1]
|
406
|
+
assert_raises(XML::XXPathError) {
|
407
|
+
node1 = XML::XXPath.new("new1/.").create_new(startnode)
|
408
|
+
}
|
409
|
+
assert_raises(XML::XXPathError) {
|
410
|
+
node2 = XML::XXPath.new("new1/././.").first(startnode, :create_new=>true)
|
411
|
+
}
|
412
|
+
end
|
413
|
+
|
414
|
+
|
261
415
|
def test_unspecifiedness
|
262
416
|
node1 = XML::XXPath.new("foo/hello").create_new(@d.root)
|
263
417
|
assert(!(node1.unspecified?))
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require File.dirname(__FILE__)+"/benchmark_fixtures"
|
2
|
+
|
3
|
+
require "xml/xxpath"
|
4
|
+
|
5
|
+
require 'benchmark'
|
6
|
+
include Benchmark
|
7
|
+
|
8
|
+
|
9
|
+
xxpath_by_name = XML::XXPath.new(@path_by_name)
|
10
|
+
xxpath_by_idx = XML::XXPath.new(@path_by_idx) # "bar6"
|
11
|
+
xxpath_by_idx_idx = XML::XXPath.new(@path_by_idx_idx) # "bar4-6"
|
12
|
+
xxpath_by_attr_idx = XML::XXPath.new(@path_by_attr_idx) # "bar4-6"
|
13
|
+
xxpath_by_attr = XML::XXPath.new(@path_by_attr) # "xy"
|
14
|
+
|
15
|
+
rootelt = @d.root
|
16
|
+
foo2elt = rootelt.elements[3]
|
17
|
+
res1=res2=res3=res4=res5=nil
|
18
|
+
print "(#{@count} runs)\n"
|
19
|
+
bmbm(12) do |x|
|
20
|
+
x.report("by_name") { @count.times { res1 = xxpath_by_name.first(rootelt) } }
|
21
|
+
x.report("by_idx") { @count.times { res2 = xxpath_by_idx.first(rootelt) } }
|
22
|
+
x.report("by_idx_idx") { @count.times { res3 = xxpath_by_idx_idx.first(rootelt) } }
|
23
|
+
x.report("by_attr_idx") { @count.times { res4 = xxpath_by_attr_idx.first(rootelt) } }
|
24
|
+
x.report("xxpath_by_attr") { (@count*4).times { res5 = xxpath_by_attr.first(foo2elt) } }
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
def assert_equal(expected,actual)
|
29
|
+
expected==actual or raise "expected: #{expected.inspect}, actual: #{actual.inspect}"
|
30
|
+
end
|
31
|
+
|
32
|
+
assert_equal "bar4-2", res1.text.strip
|
33
|
+
assert_equal "bar6", res2.text.strip
|
34
|
+
assert_equal "bar4-6", res3.text.strip
|
35
|
+
assert_equal "bar4-6", res4.text.strip
|
36
|
+
assert_equal "xy", res5.text.strip
|
@@ -0,0 +1,17 @@
|
|
1
|
+
17.2.06
|
2
|
+
|
3
|
+
(500 runs)
|
4
|
+
Rehearsal ------------------------------------------------
|
5
|
+
by_name 0.560000 0.040000 0.600000 ( 0.600790)
|
6
|
+
by_idx 0.380000 0.020000 0.400000 ( 0.402161)
|
7
|
+
by_idx_idx 0.540000 0.050000 0.590000 ( 0.596949)
|
8
|
+
by_attr_idx 0.520000 0.060000 0.580000 ( 0.568362)
|
9
|
+
path_by_attr 0.100000 0.000000 0.100000 ( 0.096042)
|
10
|
+
--------------------------------------- total: 2.270000sec
|
11
|
+
|
12
|
+
user system total real
|
13
|
+
by_name 0.550000 0.070000 0.620000 ( 0.622124)
|
14
|
+
by_idx 0.380000 0.040000 0.420000 ( 0.418242)
|
15
|
+
by_idx_idx 0.540000 0.040000 0.580000 ( 0.586023)
|
16
|
+
by_attr_idx 0.570000 0.030000 0.600000 ( 0.593609)
|
17
|
+
path_by_attr 0.070000 0.010000 0.080000 ( 0.078452)
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require File.dirname(__FILE__)+"/tests_init"
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
|
5
|
+
require "rexml/document"
|
6
|
+
require "xml/xxpath_methods"
|
7
|
+
|
8
|
+
|
9
|
+
class XXPathMethodsTest < Test::Unit::TestCase
|
10
|
+
include REXML
|
11
|
+
|
12
|
+
def setup
|
13
|
+
@d = Document.new <<-EOS
|
14
|
+
<bla>
|
15
|
+
<foo>x</foo>
|
16
|
+
<bar>bar1</bar>
|
17
|
+
<foo key='xy'>
|
18
|
+
y
|
19
|
+
<u/>
|
20
|
+
</foo>
|
21
|
+
</bla>
|
22
|
+
EOS
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_first_xpath
|
26
|
+
pathstr = "foo[2]/u"
|
27
|
+
path = XML::XXPath.new(pathstr)
|
28
|
+
elt = path.first(@d.root)
|
29
|
+
assert_equal elt, @d.root.first_xpath(pathstr)
|
30
|
+
assert_equal elt, @d.root.first_xpath(path)
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_all_xpath
|
34
|
+
pathstr = "foo"
|
35
|
+
path = XML::XXPath.new(pathstr)
|
36
|
+
elts = path.all(@d.root)
|
37
|
+
assert_equal elts, @d.root.all_xpath(pathstr)
|
38
|
+
assert_equal elts, @d.root.all_xpath(path)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_each_xpath
|
42
|
+
pathstr = "foo"
|
43
|
+
path = XML::XXPath.new(pathstr)
|
44
|
+
elts = []
|
45
|
+
path.each(@d.root) do |elt|
|
46
|
+
elts << elt
|
47
|
+
end
|
48
|
+
elts_actual = []
|
49
|
+
@d.root.each_xpath(pathstr) do |elt|
|
50
|
+
elts_actual << elt
|
51
|
+
end
|
52
|
+
assert_equal elts, elts_actual
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_create_new
|
56
|
+
@d.root.create_new_xpath("foo")
|
57
|
+
@d.root.create_new_xpath(XML::XXPath.new("foo"))
|
58
|
+
assert_equal 4, @d.root.elements.to_a("foo").size
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
metadata
CHANGED
@@ -1,99 +1,148 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.8.11
|
3
|
-
specification_version: 1
|
4
2
|
name: xml-mapping
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
email: klischat@cs.tu-berlin.de
|
12
|
-
homepage: http://xml-mapping.rubyforge.org
|
13
|
-
rubyforge_project:
|
14
|
-
description:
|
15
|
-
autorequire: xml/mapping
|
16
|
-
default_executable:
|
4
|
+
version: 0.9.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Olaf Klischat
|
8
|
+
autorequire:
|
17
9
|
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2010-05-21 00:00:00 +02:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description:
|
17
|
+
email: olaf.klischat@sofd.de
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files:
|
23
|
+
- README
|
24
|
+
- README_XPATH
|
25
|
+
- ChangeLog
|
26
|
+
- TODO.txt
|
27
|
+
- doc/xpath_impl_notes.txt
|
28
|
+
files:
|
29
|
+
- README
|
30
|
+
- README_XPATH
|
31
|
+
- ChangeLog
|
32
|
+
- TODO.txt
|
33
|
+
- doc/xpath_impl_notes.txt
|
34
|
+
- lib/xml/xxpath.rb
|
35
|
+
- lib/xml/xxpath_methods.rb
|
36
|
+
- lib/xml/xxpath/steps.rb
|
37
|
+
- lib/xml/mapping/standard_nodes.rb
|
38
|
+
- lib/xml/mapping/core_classes_mapping.rb
|
39
|
+
- lib/xml/mapping/version.rb
|
40
|
+
- lib/xml/mapping/base.rb
|
41
|
+
- lib/xml/rexml_ext.rb
|
42
|
+
- lib/xml/mapping.rb
|
43
|
+
- examples/xpath_create_new.intin.rb
|
44
|
+
- examples/xpath_ensure_created.intout
|
45
|
+
- examples/time_augm_loading.intout
|
46
|
+
- examples/time_node_w_marshallers.intin.rb
|
47
|
+
- examples/order.rb
|
48
|
+
- examples/README
|
49
|
+
- examples/time_augm.intin.rb
|
50
|
+
- examples/stringarray_usage.intin.rb
|
51
|
+
- examples/xpath_ensure_created.intin.rb
|
52
|
+
- examples/time_augm.intout
|
53
|
+
- examples/person_mm.intout
|
54
|
+
- examples/person_mm.intin.rb
|
55
|
+
- examples/order_signature_enhanced.rb
|
56
|
+
- examples/company.xml
|
57
|
+
- examples/person.intout
|
58
|
+
- examples/stringarray_usage.intout
|
59
|
+
- examples/documents_folders_usage.intout
|
60
|
+
- examples/time_node.rb
|
61
|
+
- examples/person.intin.rb
|
62
|
+
- examples/time_node_w_marshallers.xml
|
63
|
+
- examples/reader.intin.rb
|
64
|
+
- examples/company_usage.intin.rb
|
65
|
+
- examples/xpath_pathological.intin.rb
|
66
|
+
- examples/xpath_pathological.intout
|
67
|
+
- examples/order_signature_enhanced.xml
|
68
|
+
- examples/time_augm_loading.intin.rb
|
69
|
+
- examples/xpath_usage.intin.rb
|
70
|
+
- examples/xpath_docvsroot.intin.rb
|
71
|
+
- examples/stringarray.rb
|
72
|
+
- examples/time_node.intin.rb
|
73
|
+
- examples/publication.intin.rb
|
74
|
+
- examples/documents_folders_usage.intin.rb
|
75
|
+
- examples/xpath_usage.intout
|
76
|
+
- examples/order_signature_enhanced_usage.intin.rb
|
77
|
+
- examples/documents_folders.xml
|
78
|
+
- examples/order_usage.intin.rb
|
79
|
+
- examples/xpath_create_new.intout
|
80
|
+
- examples/company.rb
|
81
|
+
- examples/order_signature_enhanced_usage.intout
|
82
|
+
- examples/order.xml
|
83
|
+
- examples/order_usage.intout
|
84
|
+
- examples/publication.intout
|
85
|
+
- examples/company_usage.intout
|
86
|
+
- examples/time_node_w_marshallers.intout
|
87
|
+
- examples/reader.intout
|
88
|
+
- examples/stringarray.xml
|
89
|
+
- examples/xpath_docvsroot.intout
|
90
|
+
- examples/documents_folders.rb
|
91
|
+
- test/xxpath_benchmark.rb
|
92
|
+
- test/xxpath_methods_test.rb
|
93
|
+
- test/examples_test.rb
|
94
|
+
- test/fixtures/triangle_m2.xml
|
95
|
+
- test/fixtures/company1.xml
|
96
|
+
- test/fixtures/bookmarks1.xml
|
97
|
+
- test/fixtures/benchmark.xml
|
98
|
+
- test/fixtures/triangle_m1.xml
|
99
|
+
- test/fixtures/documents_folders2.xml
|
100
|
+
- test/fixtures/documents_folders.xml
|
101
|
+
- test/xml_mapping_test.rb
|
102
|
+
- test/triangle_mm.rb
|
103
|
+
- test/xpath_test.rb
|
104
|
+
- test/xxpath_benchmark.result1.txt
|
105
|
+
- test/tests_init.rb
|
106
|
+
- test/rexml_xpath_benchmark.rb
|
107
|
+
- test/all_tests.rb
|
108
|
+
- test/multiple_mappings_test.rb
|
109
|
+
- test/inheritance_test.rb
|
110
|
+
- test/company.rb
|
111
|
+
- test/xml_mapping_adv_test.rb
|
112
|
+
- test/bookmarks.rb
|
113
|
+
- test/benchmark_fixtures.rb
|
114
|
+
- test/documents_folders.rb
|
115
|
+
- LICENSE
|
116
|
+
- Rakefile
|
117
|
+
- install.rb
|
18
118
|
has_rdoc: true
|
19
|
-
|
119
|
+
homepage: http://xml-mapping.rubyforge.org
|
120
|
+
licenses: []
|
121
|
+
|
122
|
+
post_install_message:
|
123
|
+
rdoc_options:
|
124
|
+
- --include
|
125
|
+
- examples
|
126
|
+
require_paths:
|
127
|
+
- lib
|
128
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
20
129
|
requirements:
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
version: 0.0.0
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: "0"
|
25
133
|
version:
|
26
|
-
|
134
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: "0"
|
139
|
+
version:
|
140
|
+
requirements: []
|
141
|
+
|
142
|
+
rubyforge_project: xml-mapping
|
143
|
+
rubygems_version: 1.3.5
|
27
144
|
signing_key:
|
28
|
-
|
29
|
-
|
30
|
-
- Olaf Klischat
|
31
|
-
files:
|
32
|
-
- README
|
33
|
-
- README_XPATH
|
34
|
-
- TODO.txt
|
35
|
-
- doc/xpath_impl_notes.txt
|
36
|
-
- lib/xml
|
37
|
-
- lib/xml/mapping
|
38
|
-
- lib/xml/mapping.rb
|
39
|
-
- lib/xml/xxpath.rb
|
40
|
-
- lib/xml/xxpath
|
41
|
-
- lib/xml/mapping/base.rb
|
42
|
-
- lib/xml/mapping/version.rb
|
43
|
-
- lib/xml/mapping/standard_nodes.rb
|
44
|
-
- examples/company.xml
|
45
|
-
- examples/company.rb
|
46
|
-
- examples/order_signature_enhanced.rb
|
47
|
-
- examples/company_usage.intin.rb
|
48
|
-
- examples/order.rb
|
49
|
-
- examples/order.xml
|
50
|
-
- examples/company_usage.intout
|
51
|
-
- examples/order_signature_enhanced.xml
|
52
|
-
- examples/order_usage.intin.rb
|
53
|
-
- examples/time_node.rb
|
54
|
-
- examples/order_signature_enhanced_usage.intin.rb
|
55
|
-
- examples/time_augm.intin.rb
|
56
|
-
- examples/xpath_create_new.intin.rb
|
57
|
-
- examples/xpath_docvsroot.intin.rb
|
58
|
-
- examples/xpath_ensure_created.intin.rb
|
59
|
-
- examples/xpath_pathological.intin.rb
|
60
|
-
- examples/xpath_usage.intin.rb
|
61
|
-
- examples/order_usage.intout
|
62
|
-
- examples/time_augm.intout
|
63
|
-
- examples/xpath_usage.intout
|
64
|
-
- examples/xpath_ensure_created.intout
|
65
|
-
- examples/xpath_create_new.intout
|
66
|
-
- examples/xpath_pathological.intout
|
67
|
-
- examples/xpath_docvsroot.intout
|
68
|
-
- examples/order_signature_enhanced_usage.intout
|
69
|
-
- test/all_tests.rb
|
70
|
-
- test/company.rb
|
71
|
-
- test/tests_init.rb
|
72
|
-
- test/fixtures
|
73
|
-
- test/documents_folders.rb
|
74
|
-
- test/multiple_mappings.rb
|
75
|
-
- test/xml_mapping_adv_test.rb
|
76
|
-
- test/xml_mapping_test.rb
|
77
|
-
- test/xpath_test.rb
|
78
|
-
- test/fixtures/bookmarks1.xml
|
79
|
-
- test/fixtures/company1.xml
|
80
|
-
- test/fixtures/documents_folders.xml
|
81
|
-
- test/fixtures/documents_folders2.xml
|
82
|
-
- LICENSE
|
83
|
-
- Rakefile
|
84
|
-
- ChangeLog
|
85
|
-
- install.rb
|
145
|
+
specification_version: 3
|
146
|
+
summary: An easy to use, extensible library for mapping Ruby objects to XML and back. Includes an XPath interpreter.
|
86
147
|
test_files:
|
87
|
-
|
88
|
-
rdoc_options:
|
89
|
-
- "--include"
|
90
|
-
- examples
|
91
|
-
extra_rdoc_files:
|
92
|
-
- README
|
93
|
-
- README_XPATH
|
94
|
-
- TODO.txt
|
95
|
-
- doc/xpath_impl_notes.txt
|
96
|
-
executables: []
|
97
|
-
extensions: []
|
98
|
-
requirements: []
|
99
|
-
dependencies: []
|
148
|
+
- test/all_tests.rb
|