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.
Files changed (71) hide show
  1. data/ChangeLog +64 -3
  2. data/README +871 -173
  3. data/README_XPATH +40 -13
  4. data/Rakefile +37 -26
  5. data/TODO.txt +39 -8
  6. data/examples/README +5 -0
  7. data/examples/company_usage.intout +34 -22
  8. data/examples/documents_folders.rb +31 -0
  9. data/examples/documents_folders.xml +16 -0
  10. data/examples/documents_folders_usage.intin.rb +18 -0
  11. data/examples/documents_folders_usage.intout +46 -0
  12. data/examples/order_signature_enhanced_usage.intout +21 -11
  13. data/examples/order_usage.intin.rb +52 -5
  14. data/examples/order_usage.intout +154 -80
  15. data/examples/person.intin.rb +44 -0
  16. data/examples/person.intout +27 -0
  17. data/examples/person_mm.intin.rb +119 -0
  18. data/examples/person_mm.intout +114 -0
  19. data/examples/publication.intin.rb +44 -0
  20. data/examples/publication.intout +20 -0
  21. data/examples/reader.intin.rb +33 -0
  22. data/examples/reader.intout +19 -0
  23. data/examples/stringarray.rb +5 -0
  24. data/examples/stringarray.xml +10 -0
  25. data/examples/stringarray_usage.intin.rb +11 -0
  26. data/examples/stringarray_usage.intout +31 -0
  27. data/examples/time_augm.intout +19 -7
  28. data/examples/time_augm_loading.intin.rb +44 -0
  29. data/examples/time_augm_loading.intout +12 -0
  30. data/examples/time_node.intin.rb +79 -0
  31. data/examples/time_node.rb +3 -2
  32. data/examples/time_node_w_marshallers.intin.rb +48 -0
  33. data/examples/time_node_w_marshallers.intout +25 -0
  34. data/examples/time_node_w_marshallers.xml +9 -0
  35. data/examples/xpath_create_new.intout +132 -114
  36. data/examples/xpath_ensure_created.intout +86 -65
  37. data/examples/xpath_pathological.intout +16 -16
  38. data/examples/xpath_usage.intout +1 -1
  39. data/install.rb +1 -0
  40. data/lib/xml/mapping.rb +3 -1
  41. data/lib/xml/mapping/base.rb +442 -272
  42. data/lib/xml/mapping/core_classes_mapping.rb +32 -0
  43. data/lib/xml/mapping/standard_nodes.rb +176 -86
  44. data/lib/xml/mapping/version.rb +2 -2
  45. data/lib/xml/rexml_ext.rb +186 -0
  46. data/lib/xml/xxpath.rb +28 -265
  47. data/lib/xml/xxpath/steps.rb +345 -0
  48. data/lib/xml/xxpath_methods.rb +96 -0
  49. data/test/all_tests.rb +4 -1
  50. data/test/benchmark_fixtures.rb +14 -0
  51. data/test/{multiple_mappings.rb → bookmarks.rb} +0 -0
  52. data/test/company.rb +47 -0
  53. data/test/documents_folders.rb +11 -1
  54. data/test/examples_test.rb +29 -0
  55. data/test/fixtures/benchmark.xml +77 -0
  56. data/test/fixtures/company1.xml +9 -0
  57. data/test/fixtures/documents_folders.xml +0 -8
  58. data/test/fixtures/documents_folders2.xml +13 -19
  59. data/test/fixtures/triangle_m1.xml +17 -0
  60. data/test/fixtures/triangle_m2.xml +19 -0
  61. data/test/inheritance_test.rb +50 -0
  62. data/test/multiple_mappings_test.rb +155 -0
  63. data/test/rexml_xpath_benchmark.rb +29 -0
  64. data/test/triangle_mm.rb +57 -0
  65. data/test/xml_mapping_adv_test.rb +36 -1
  66. data/test/xml_mapping_test.rb +136 -7
  67. data/test/xpath_test.rb +154 -0
  68. data/test/xxpath_benchmark.rb +36 -0
  69. data/test/xxpath_benchmark.result1.txt +17 -0
  70. data/test/xxpath_methods_test.rb +61 -0
  71. metadata +139 -90
@@ -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.8.1
7
- date: 2005-12-07 00:00:00 +01:00
8
- summary: "An easy to use, extensible library for mapping Ruby objects to XML and back. Includes an XPath interpreter."
9
- require_paths:
10
- - lib
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
- required_ruby_version: !ruby/object:Gem::Version::Requirement
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
- - !ruby/object:Gem::Version
24
- version: 0.0.0
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: "0"
25
133
  version:
26
- platform: ruby
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
- cert_chain:
29
- authors:
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
- - test/all_tests.rb
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