xml-mapping 0.8.1 → 0.9.1

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