Empact-roxml 2.4.3 → 2.5.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 (51) hide show
  1. data/History.txt +65 -0
  2. data/Manifest.txt +11 -6
  3. data/README.rdoc +48 -26
  4. data/Rakefile +5 -2
  5. data/TODO +30 -31
  6. data/examples/active_record.rb +70 -0
  7. data/examples/amazon.rb +1 -1
  8. data/examples/current_weather.rb +1 -1
  9. data/examples/library.rb +40 -0
  10. data/examples/posts.rb +8 -8
  11. data/examples/twitter.rb +2 -2
  12. data/examples/xml/active_record.xml +70 -0
  13. data/lib/roxml.rb +174 -174
  14. data/lib/roxml/definition.rb +165 -89
  15. data/lib/roxml/extensions/deprecation.rb +5 -0
  16. data/lib/roxml/extensions/string/conversions.rb +2 -3
  17. data/lib/roxml/hash_definition.rb +26 -25
  18. data/lib/roxml/xml.rb +15 -6
  19. data/lib/roxml/xml/parsers/libxml.rb +14 -6
  20. data/lib/roxml/xml/parsers/rexml.rb +16 -5
  21. data/lib/roxml/xml/references.rb +14 -17
  22. data/roxml.gemspec +14 -5
  23. data/spec/definition_spec.rb +563 -0
  24. data/spec/examples/active_record_spec.rb +40 -0
  25. data/spec/examples/library_spec.rb +41 -0
  26. data/spec/roxml_spec.rb +372 -0
  27. data/spec/shared_specs.rb +15 -0
  28. data/spec/spec_helper.rb +21 -4
  29. data/spec/string_spec.rb +15 -0
  30. data/spec/xml/parser_spec.rb +47 -0
  31. data/test/fixtures/book_valid.xml +1 -1
  32. data/test/fixtures/person_with_guarded_mothers.xml +3 -3
  33. data/test/mocks/mocks.rb +57 -45
  34. data/test/test_helper.rb +1 -1
  35. data/test/unit/definition_test.rb +161 -12
  36. data/test/unit/deprecations_test.rb +97 -0
  37. data/test/unit/to_xml_test.rb +30 -1
  38. data/test/unit/xml_bool_test.rb +15 -3
  39. data/test/unit/xml_construct_test.rb +6 -6
  40. data/test/unit/xml_hash_test.rb +18 -0
  41. data/test/unit/xml_initialize_test.rb +6 -3
  42. data/test/unit/xml_namespace_test.rb +1 -0
  43. data/test/unit/xml_object_test.rb +66 -5
  44. data/test/unit/xml_text_test.rb +3 -0
  45. metadata +57 -24
  46. data/test/unit/array_test.rb +0 -16
  47. data/test/unit/freeze_test.rb +0 -71
  48. data/test/unit/inheritance_test.rb +0 -63
  49. data/test/unit/overriden_output_test.rb +0 -33
  50. data/test/unit/roxml_test.rb +0 -60
  51. data/test/unit/string_test.rb +0 -11
@@ -0,0 +1,97 @@
1
+ require File.join(File.dirname(__FILE__), '..', 'test_helper')
2
+
3
+ class TestDefinition < Test::Unit::TestCase
4
+ def test_tag_refs_is_deprecated
5
+ assert_deprecated do
6
+ Class.new do
7
+ include ROXML
8
+ end.tag_refs
9
+ end
10
+ end
11
+
12
+ def test_literal_as_array_is_deprecated
13
+ assert_deprecated do
14
+ assert ROXML::Definition.new(:authors, :as => :array).array?
15
+ end
16
+ end
17
+
18
+ def test_no_block_shorthand_means_no_block
19
+ assert_deprecated do
20
+ assert ROXML::Definition.new(:count, :as => :intager).blocks.empty?
21
+ end
22
+ assert_deprecated do
23
+ assert ROXML::Definition.new(:count, :as => :foat).blocks.empty?
24
+ end
25
+ end
26
+
27
+ def test_symbol_shorthands_are_deprecated
28
+ assert_deprecated do
29
+ ROXML::Definition.new(:junk, :as => :integer)
30
+ end
31
+ assert_deprecated do
32
+ ROXML::Definition.new(:junk, :as => :float)
33
+ end
34
+ end
35
+
36
+ def test_as_cdata_is_deprecated
37
+ assert_deprecated do
38
+ assert ROXML::Definition.new(:manufacturer, :as => :cdata).cdata?
39
+ end
40
+ assert_deprecated do
41
+ assert ROXML::Definition.new(:manufacturer, :as => [Integer, :cdata]).cdata?
42
+ end
43
+ end
44
+
45
+ def test_content_is_a_recognized_type
46
+ assert_deprecated do
47
+ opts = ROXML::Definition.new(:author, :content)
48
+ assert opts.content?
49
+ assert_equal '.', opts.name
50
+ assert_equal :text, opts.type
51
+ end
52
+ end
53
+
54
+ def test_content_symbol_as_target_is_translated_to_string
55
+ assert_deprecated do
56
+ opts = ROXML::Definition.new(:content, :attr => :content)
57
+ assert_equal 'content', opts.name
58
+ assert_equal :attr, opts.type
59
+ end
60
+ end
61
+
62
+ def test_attr_is_a_recognized_type
63
+ assert_deprecated do
64
+ opts = ROXML::Definition.new(:author, :attr)
65
+ assert_equal 'author', opts.name
66
+ assert_equal :attr, opts.type
67
+ end
68
+ end
69
+
70
+ def test_as_array_not_deprecated
71
+ assert_not_deprecated do
72
+ opts = ROXML::Definition.new(:name, :as => [])
73
+ assert_equal :text, opts.type
74
+ assert opts.array?
75
+ end
76
+ end
77
+
78
+ def test_as_hash_of_attrs_deprecated
79
+ assert_deprecated do
80
+ opts = ROXML::Definition.new(:name, :as => {:attrs => [:dt, :dd]})
81
+ assert opts.hash?
82
+ end
83
+ end
84
+
85
+ def test_as_hash_not_deprecated
86
+ assert_not_deprecated do
87
+ opts = ROXML::Definition.new(:name, :as => {:key => '@dt', :value => '@dd'})
88
+ assert opts.hash?
89
+ end
90
+ end
91
+
92
+ def test_as_object_with_from_xml_not_deprecated
93
+ assert_not_deprecated do
94
+ ROXML::Definition.new(:name, :as => OctalInteger)
95
+ end
96
+ end
97
+ end
@@ -49,4 +49,33 @@ class TestToXmlWithBlocks < Test::Unit::TestCase
49
49
  doc.root = b.to_xml
50
50
  assert_equal '500', doc.search('pagecount').first.content
51
51
  end
52
- end
52
+ end
53
+
54
+ class OctalInteger
55
+ def self.from_xml(val)
56
+ new(Integer(val.content))
57
+ end
58
+
59
+ def initialize(value)
60
+ @val = value
61
+ end
62
+
63
+ def ==(other)
64
+ @val == other
65
+ end
66
+
67
+ def to_xml
68
+ sprintf("%#o", @val)
69
+ end
70
+ end
71
+
72
+ class BookWithOctalPages
73
+ include ROXML
74
+
75
+ xml_accessor :pages_with_to_xml_proc, :as => Integer, :to_xml => proc {|val| sprintf("%#o", val) }, :required => true
76
+ xml_accessor :pages_with_type, OctalInteger, :required => true
77
+ end
78
+
79
+ class TestToXmlWithOverriddenOutput < Test::Unit::TestCase
80
+ to_xml_test :book_with_octal_pages
81
+ end
@@ -11,10 +11,10 @@ class XmlBool
11
11
  xml_name 'xml_bool'
12
12
  xml_reader :true_from_TRUE?, :to_xml => PROC_TRUE
13
13
  xml_reader :false_from_FALSE?, :text => 'text_for_FALSE', :to_xml => PROC_TRUE
14
- xml_reader :true_from_one?, :attr => 'attr_for_one', :to_xml => PROC_1
14
+ xml_reader :true_from_one?, :from => '@attr_for_one', :to_xml => PROC_1
15
15
  xml_reader :false_from_zero?, :text => 'text_for_zero', :in => 'container', :to_xml => PROC_1
16
- xml_reader :true_from_True?, :attr => 'attr_for_True', :in => 'container', :to_xml => PROC_True
17
- xml_reader :false_from_False?, :text => 'false_from_cdata_False', :as => :cdata, :to_xml => PROC_True
16
+ xml_reader :true_from_True?, :from => '@attr_for_True', :in => 'container', :to_xml => PROC_True
17
+ xml_reader :false_from_False?, :text => 'false_from_cdata_False', :cdata => true, :to_xml => PROC_True
18
18
  xml_reader :true_from_true?, :to_xml => PROC_true
19
19
  xml_reader :false_from_false?, :to_xml => PROC_true
20
20
  xml_reader :missing?
@@ -106,5 +106,17 @@ class TestXMLBool < Test::Unit::TestCase
106
106
  end
107
107
  end
108
108
 
109
+ def test_writable_references_properly_handle_punctuation
110
+ klass = Class.new do
111
+ include ROXML
112
+ xml_accessor :punctuation?
113
+ end
114
+
115
+ instance = klass.from_xml("<xml><punctuation>True</punctuation></xml>")
116
+ assert_equal true, instance.punctuation?
117
+ instance.punctuation = false
118
+ assert_equal false, instance.punctuation?
119
+ end
120
+
109
121
  to_xml_test XmlBool => BOOL_XML
110
122
  end
@@ -3,8 +3,8 @@ require File.join(File.dirname(__FILE__), '..', 'test_helper')
3
3
  class MeasurementWithXmlConstruct
4
4
  include ROXML
5
5
 
6
- xml_reader :units, :attr
7
- xml_reader :value, :content
6
+ xml_reader :units, :from => :attr
7
+ xml_reader :value, :from => :content
8
8
 
9
9
  xml_construct_without_deprecation :value, :units
10
10
 
@@ -25,9 +25,9 @@ end
25
25
  class BookWithDepthWithXmlConstruct
26
26
  include ROXML
27
27
 
28
- xml_reader :isbn, :attr => 'ISBN'
28
+ xml_reader :isbn, :from => '@ISBN'
29
29
  xml_reader :title
30
- xml_reader :description, :as => :cdata
30
+ xml_reader :description, :cdata => true
31
31
  xml_reader :author
32
32
  xml_reader :depth, MeasurementWithXmlConstruct
33
33
  end
@@ -64,9 +64,9 @@ class TestXMLConstruct < Test::Unit::TestCase
64
64
  Class.new do
65
65
  include ROXML
66
66
 
67
- xml_reader :bar, :attr => 'Foo'
67
+ xml_reader :bar, :from => '@Foo'
68
68
  xml_reader :foo, :text => 'Foo'
69
- xml_reader :baz, :attr => 'Bar'
69
+ xml_reader :baz, :from => '@Bar'
70
70
 
71
71
  xml_construct_without_deprecation :baz, :bar, :foo
72
72
  def initialize(baz, bar, foo)
@@ -103,4 +103,22 @@ class TestXMLHash < Test::Unit::TestCase
103
103
  </dict>
104
104
  }).missing_hash)
105
105
  end
106
+
107
+ def test_as_hash_of_type_keys_deprecated
108
+ assert_deprecated do
109
+ opts = ROXML::Definition.new(:name, :as => {:key => :name, :value => {OctalInteger => 'value'}})
110
+ assert opts.hash?
111
+ assert_equal OctalInteger, opts.hash.value.type
112
+ assert_equal 'value', opts.hash.value.name
113
+ end
114
+ end
115
+
116
+ def test_as_hash_of_as_type_not_deprecated
117
+ assert_not_deprecated do
118
+ opts = ROXML::Definition.new(:name, :as => {:key => :name, :value => {:from => 'value', :as => OctalInteger}})
119
+ assert opts.hash?
120
+ assert_equal OctalInteger, opts.hash.value.type
121
+ assert_equal 'value', opts.hash.value.name
122
+ end
123
+ end
106
124
  end
@@ -1,5 +1,9 @@
1
1
  require File.join(File.dirname(__FILE__), '..', 'test_helper')
2
2
 
3
+ class InheritedBookWithDepth < Book
4
+ xml_reader :depth, Measurement
5
+ end
6
+
3
7
  class BookWithXmlInitialize < BookWithDepth
4
8
  attr_reader :created_at, :creator
5
9
 
@@ -7,7 +11,6 @@ class BookWithXmlInitialize < BookWithDepth
7
11
  @created_at = created_at
8
12
  @creator = creator
9
13
  end
10
- alias_method :xml_initialize, :initialize
11
14
  end
12
15
 
13
16
  class TestXMLInitialize < Test::Unit::TestCase
@@ -32,8 +35,8 @@ class TestXMLInitialize < Test::Unit::TestCase
32
35
  end
33
36
 
34
37
  def test_initialize_fails_on_missing_required_arg
35
- assert_raises(ArgumentError) do
36
- b = BookWithXmlInitialize.from_xml(fixture(:book_with_depth))
38
+ assert_raise ArgumentError do
39
+ BookWithXmlInitialize.from_xml(fixture(:book_with_depth))
37
40
  end
38
41
  end
39
42
 
@@ -34,6 +34,7 @@ class TestDefaultXMLNamespaces < Test::Unit::TestCase
34
34
  assert_equal "Yeah, content", xml.find_first('ns:node', 'ns:http://defaultnamespace.org').content
35
35
  assert_equal nil, xml.find_first('ns:node/subnode', 'ns:http://defaultnamespace.org')
36
36
  assert_equal "Another", xml.find_first('ns:node/ns:subnode', 'ns:http://defaultnamespace.org').content
37
+ rescue LoadError
37
38
  end
38
39
  end
39
40
 
@@ -57,7 +57,7 @@ class TestXMLObject < Test::Unit::TestCase
57
57
  book_one.isbn = "9781843549161"
58
58
  book_one.title = "Anathem"
59
59
  book_one.description = "A new title from Neal Stephenson"
60
- book_one.contributors << contrib
60
+ book_one.contributors = [contrib]
61
61
 
62
62
  # this book should be completely empty
63
63
  book_two = WriteableBookWithContributors.new
@@ -65,7 +65,7 @@ class TestXMLObject < Test::Unit::TestCase
65
65
  assert_equal(nil, book_two.isbn)
66
66
  assert_equal(nil, book_two.title)
67
67
  assert_equal(nil, book_two.description)
68
- assert_equal(0, book_two.contributors.size)
68
+ assert_equal(nil, book_two.contributors)
69
69
  end
70
70
 
71
71
  # Test XML object containing one other XML object (one-to-one)
@@ -116,11 +116,72 @@ class TestXMLObject < Test::Unit::TestCase
116
116
  assert_equal nil, p.mother.mother.mother
117
117
  end
118
118
 
119
+ class Node
120
+ include ROXML
121
+
122
+ xml_reader :name, :from => 'node_name'
123
+ xml_reader :nodes, [Node]
124
+ end
125
+
126
+ class Taxonomy
127
+ include ROXML
128
+
129
+ xml_reader :name, :from => 'taxonomy_name'
130
+ xml_reader :nodes, [Node]
131
+ end
132
+
133
+ class Taxonomies
134
+ include ROXML
135
+ xml_reader :taxonomies, [Taxonomy]
136
+ end
137
+
138
+ def test_more_recursion
139
+ # quiet the error handler
140
+ ROXML::XML::Error.reset_handler
141
+ taxonomies = Taxonomies.from_xml(<<HERE)
142
+ <?xml version="1.0" encoding="UTF-8" ?>
143
+ <!DOCTYPE taxonomies SYSTEM "taxonomy.dtd">
144
+ <taxonomies>
145
+ <taxonomy>
146
+ <taxonomy_name>World</taxonomy_name>
147
+ <node node_id="2" content_object_id="82534" object_type_id="2">
148
+ <node_name lang_iso="eng">Africa</node_name>
149
+ <node node_id="331" content_object_id="11" object_type_id="4">
150
+ <node_name lang_iso="eng">Algeria</node_name>
151
+ <node node_id="7271" content_object_id="117629" object_type_id="8">
152
+ <node_name lang_iso="eng">Algiers</node_name>
153
+ </node>
154
+ <node node_id="7272" content_object_id="117630" object_type_id="8">
155
+ <node_name lang_iso="eng">Gharda&#239;a</node_name>
156
+ </node>
157
+ <node node_id="7871" content_object_id="1000713999" object_type_id="8">
158
+ <node_name lang_iso="eng">El Oued</node_name>
159
+ </node>
160
+ <node node_id="7872" content_object_id="1000714008" object_type_id="8">
161
+ <node_name lang_iso="eng">Timimoun</node_name>
162
+ </node>
163
+ <node node_id="8903" content_object_id="1000565565" object_type_id="8">
164
+ <node_name lang_iso="eng">Annaba</node_name>
165
+ </node>
166
+ </node>
167
+ </node>
168
+ </taxonomy>
169
+ </taxonomies>
170
+ HERE
171
+ assert_equal 1, taxonomies.taxonomies.size
172
+ assert_equal 'World', taxonomies.taxonomies.first.name
173
+ node = taxonomies.taxonomies.first.nodes.first
174
+ assert_equal 'Africa', node.name
175
+ assert_equal 'Algeria', node.nodes.first.name
176
+ assert_equal ['Algiers', "Gharda\303\257a", 'El Oued', 'Timimoun', 'Annaba'],
177
+ node.nodes.first.nodes.map(&:name)
178
+ end
179
+
119
180
  def test_with_guarded_recursion
120
181
  p = PersonWithGuardedMother.from_xml(fixture(:person_with_guarded_mothers))
121
- assert_equal 'Ben Franklin', p.name
122
- assert_equal 'Abiah Folger', p.mother.name
123
- assert_equal 'Madeup Mother', p.mother.mother.name
182
+ assert_equal 'Ben "Benji" Franklin', p.name
183
+ assert_equal 'Abiah \'Abby\' Folger', p.mother.name
184
+ assert_equal 'Madeup Mother < the third >', p.mother.mother.name
124
185
  assert_equal nil, p.mother.mother.mother
125
186
  end
126
187
 
@@ -5,6 +5,9 @@ class TestXMLText < Test::Unit::TestCase
5
5
  def test_valid_simple
6
6
  book = Book.from_xml(fixture(:book_valid))
7
7
  assert_equal("The PickAxe", book.title)
8
+ assert_equal("David Thomas, Andrew Hunt & Dave Thomas", book.author)
9
+
10
+ assert_equal xml_fixture(:book_valid).to_s.gsub("\n", ''), book.to_xml.to_s.gsub("\n", '')
8
11
  end
9
12
 
10
13
  def test_without_needed_from
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Empact-roxml
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.3
4
+ version: 2.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Woosley
@@ -12,11 +12,12 @@ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
14
 
15
- date: 2009-02-01 00:00:00 -08:00
15
+ date: 2009-03-02 00:00:00 -08:00
16
16
  default_executable:
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: activesupport
20
+ type: :runtime
20
21
  version_requirement:
21
22
  version_requirements: !ruby/object:Gem::Requirement
22
23
  requirements:
@@ -24,8 +25,19 @@ dependencies:
24
25
  - !ruby/object:Gem::Version
25
26
  version: 2.1.0
26
27
  version:
28
+ - !ruby/object:Gem::Dependency
29
+ name: libxml-ruby
30
+ type: :runtime
31
+ version_requirement:
32
+ version_requirements: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 0.8.6
37
+ version:
27
38
  - !ruby/object:Gem::Dependency
28
39
  name: newgem
40
+ type: :development
29
41
  version_requirement:
30
42
  version_requirements: !ruby/object:Gem::Requirement
31
43
  requirements:
@@ -33,8 +45,29 @@ dependencies:
33
45
  - !ruby/object:Gem::Version
34
46
  version: 1.2.3
35
47
  version:
48
+ - !ruby/object:Gem::Dependency
49
+ name: sqlite3-ruby
50
+ type: :development
51
+ version_requirement:
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 1.2.4
57
+ version:
58
+ - !ruby/object:Gem::Dependency
59
+ name: activerecord
60
+ type: :development
61
+ version_requirement:
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 2.2.2
67
+ version:
36
68
  - !ruby/object:Gem::Dependency
37
69
  name: hoe
70
+ type: :development
38
71
  version_requirement:
39
72
  version_requirements: !ruby/object:Gem::Requirement
40
73
  requirements:
@@ -60,11 +93,14 @@ files:
60
93
  - Rakefile
61
94
  - TODO
62
95
  - config/website.yml
96
+ - examples/active_record.rb
63
97
  - examples/amazon.rb
64
98
  - examples/current_weather.rb
65
99
  - examples/dashed_elements.rb
100
+ - examples/library.rb
66
101
  - examples/posts.rb
67
102
  - examples/twitter.rb
103
+ - examples/xml/active_record.xml
68
104
  - examples/xml/amazon.xml
69
105
  - examples/xml/current_weather.xml
70
106
  - examples/xml/dashed_elements.xml
@@ -86,13 +122,20 @@ files:
86
122
  - lib/roxml/xml/parsers/rexml.rb
87
123
  - lib/roxml/xml/references.rb
88
124
  - roxml.gemspec
125
+ - spec/definition_spec.rb
126
+ - spec/examples/active_record_spec.rb
89
127
  - spec/examples/amazon_spec.rb
90
128
  - spec/examples/current_weather_spec.rb
91
129
  - spec/examples/dashed_elements_spec.rb
130
+ - spec/examples/library_spec.rb
92
131
  - spec/examples/post_spec.rb
93
132
  - spec/examples/twitter_spec.rb
133
+ - spec/roxml_spec.rb
134
+ - spec/shared_specs.rb
94
135
  - spec/spec.opts
95
136
  - spec/spec_helper.rb
137
+ - spec/string_spec.rb
138
+ - spec/xml/parser_spec.rb
96
139
  - tasks/rspec.rake
97
140
  - tasks/test.rake
98
141
  - test/bugs/rexml_bugs.rb
@@ -130,13 +173,8 @@ files:
130
173
  - test/mocks/mocks.rb
131
174
  - test/release/dependencies_test.rb
132
175
  - test/test_helper.rb
133
- - test/unit/array_test.rb
134
176
  - test/unit/definition_test.rb
135
- - test/unit/freeze_test.rb
136
- - test/unit/inheritance_test.rb
137
- - test/unit/overriden_output_test.rb
138
- - test/unit/roxml_test.rb
139
- - test/unit/string_test.rb
177
+ - test/unit/deprecations_test.rb
140
178
  - test/unit/to_xml_test.rb
141
179
  - test/unit/xml_attribute_test.rb
142
180
  - test/unit/xml_block_test.rb
@@ -183,23 +221,18 @@ signing_key:
183
221
  specification_version: 2
184
222
  summary: Ruby Object to XML mapping library
185
223
  test_files:
186
- - test/unit/freeze_test.rb
187
- - test/unit/array_test.rb
188
- - test/unit/xml_convention_test.rb
189
- - test/unit/xml_object_test.rb
190
- - test/unit/xml_required_test.rb
191
- - test/unit/xml_bool_test.rb
192
- - test/unit/roxml_test.rb
193
- - test/unit/xml_name_test.rb
194
224
  - test/unit/definition_test.rb
225
+ - test/unit/deprecations_test.rb
226
+ - test/unit/to_xml_test.rb
227
+ - test/unit/xml_attribute_test.rb
228
+ - test/unit/xml_block_test.rb
229
+ - test/unit/xml_bool_test.rb
195
230
  - test/unit/xml_construct_test.rb
196
- - test/unit/string_test.rb
231
+ - test/unit/xml_convention_test.rb
232
+ - test/unit/xml_hash_test.rb
233
+ - test/unit/xml_initialize_test.rb
234
+ - test/unit/xml_name_test.rb
197
235
  - test/unit/xml_namespace_test.rb
236
+ - test/unit/xml_object_test.rb
237
+ - test/unit/xml_required_test.rb
198
238
  - test/unit/xml_text_test.rb
199
- - test/unit/overriden_output_test.rb
200
- - test/unit/xml_block_test.rb
201
- - test/unit/xml_attribute_test.rb
202
- - test/unit/inheritance_test.rb
203
- - test/unit/xml_initialize_test.rb
204
- - test/unit/xml_hash_test.rb
205
- - test/unit/to_xml_test.rb