doxo-roxml 2.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. data/History.txt +279 -0
  2. data/MIT-LICENSE +18 -0
  3. data/Manifest.txt +103 -0
  4. data/README.rdoc +158 -0
  5. data/Rakefile +96 -0
  6. data/TODO +62 -0
  7. data/config/website.yml +2 -0
  8. data/examples/active_record.rb +70 -0
  9. data/examples/amazon.rb +33 -0
  10. data/examples/current_weather.rb +27 -0
  11. data/examples/dashed_elements.rb +20 -0
  12. data/examples/library.rb +40 -0
  13. data/examples/posts.rb +27 -0
  14. data/examples/twitter.rb +37 -0
  15. data/examples/xml/active_record.xml +70 -0
  16. data/examples/xml/amazon.xml +133 -0
  17. data/examples/xml/current_weather.xml +89 -0
  18. data/examples/xml/dashed_elements.xml +52 -0
  19. data/examples/xml/posts.xml +23 -0
  20. data/examples/xml/twitter.xml +422 -0
  21. data/lib/roxml.rb +511 -0
  22. data/lib/roxml/definition.rb +234 -0
  23. data/lib/roxml/extensions.rb +6 -0
  24. data/lib/roxml/extensions/array.rb +13 -0
  25. data/lib/roxml/extensions/array/conversions.rb +12 -0
  26. data/lib/roxml/extensions/deprecation.rb +33 -0
  27. data/lib/roxml/extensions/string.rb +6 -0
  28. data/lib/roxml/extensions/string/conversions.rb +5 -0
  29. data/lib/roxml/extensions/string/iterators.rb +12 -0
  30. data/lib/roxml/hash_definition.rb +25 -0
  31. data/lib/roxml/xml.rb +40 -0
  32. data/lib/roxml/xml/parsers/libxml.rb +86 -0
  33. data/lib/roxml/xml/parsers/rexml.rb +84 -0
  34. data/lib/roxml/xml/references.rb +299 -0
  35. data/roxml.gemspec +50 -0
  36. data/spec/definition_spec.rb +490 -0
  37. data/spec/examples/active_record_spec.rb +40 -0
  38. data/spec/examples/amazon_spec.rb +53 -0
  39. data/spec/examples/current_weather_spec.rb +37 -0
  40. data/spec/examples/dashed_elements_spec.rb +20 -0
  41. data/spec/examples/library_spec.rb +46 -0
  42. data/spec/examples/post_spec.rb +24 -0
  43. data/spec/examples/twitter_spec.rb +32 -0
  44. data/spec/roxml_spec.rb +372 -0
  45. data/spec/shared_specs.rb +15 -0
  46. data/spec/spec.opts +1 -0
  47. data/spec/spec_helper.rb +33 -0
  48. data/spec/xml/parser_spec.rb +47 -0
  49. data/tasks/rspec.rake +21 -0
  50. data/tasks/test.rake +42 -0
  51. data/test/bugs/rexml_bugs.rb +15 -0
  52. data/test/fixtures/book_malformed.xml +5 -0
  53. data/test/fixtures/book_pair.xml +8 -0
  54. data/test/fixtures/book_text_with_attribute.xml +5 -0
  55. data/test/fixtures/book_valid.xml +5 -0
  56. data/test/fixtures/book_with_authors.xml +7 -0
  57. data/test/fixtures/book_with_contributions.xml +9 -0
  58. data/test/fixtures/book_with_contributors.xml +7 -0
  59. data/test/fixtures/book_with_contributors_attrs.xml +7 -0
  60. data/test/fixtures/book_with_default_namespace.xml +9 -0
  61. data/test/fixtures/book_with_depth.xml +6 -0
  62. data/test/fixtures/book_with_octal_pages.xml +4 -0
  63. data/test/fixtures/book_with_publisher.xml +7 -0
  64. data/test/fixtures/book_with_wrapped_attr.xml +3 -0
  65. data/test/fixtures/dictionary_of_attr_name_clashes.xml +8 -0
  66. data/test/fixtures/dictionary_of_attrs.xml +6 -0
  67. data/test/fixtures/dictionary_of_guarded_names.xml +6 -0
  68. data/test/fixtures/dictionary_of_mixeds.xml +4 -0
  69. data/test/fixtures/dictionary_of_name_clashes.xml +10 -0
  70. data/test/fixtures/dictionary_of_names.xml +4 -0
  71. data/test/fixtures/dictionary_of_texts.xml +10 -0
  72. data/test/fixtures/library.xml +30 -0
  73. data/test/fixtures/library_uppercase.xml +30 -0
  74. data/test/fixtures/muffins.xml +3 -0
  75. data/test/fixtures/nameless_ageless_youth.xml +2 -0
  76. data/test/fixtures/node_with_attr_name_conflicts.xml +1 -0
  77. data/test/fixtures/node_with_name_conflicts.xml +4 -0
  78. data/test/fixtures/numerology.xml +4 -0
  79. data/test/fixtures/person.xml +1 -0
  80. data/test/fixtures/person_with_guarded_mothers.xml +13 -0
  81. data/test/fixtures/person_with_mothers.xml +10 -0
  82. data/test/mocks/dictionaries.rb +57 -0
  83. data/test/mocks/mocks.rb +279 -0
  84. data/test/test_helper.rb +45 -0
  85. data/test/unit/definition_test.rb +235 -0
  86. data/test/unit/deprecations_test.rb +24 -0
  87. data/test/unit/to_xml_test.rb +81 -0
  88. data/test/unit/xml_attribute_test.rb +39 -0
  89. data/test/unit/xml_block_test.rb +81 -0
  90. data/test/unit/xml_bool_test.rb +122 -0
  91. data/test/unit/xml_convention_test.rb +150 -0
  92. data/test/unit/xml_hash_test.rb +115 -0
  93. data/test/unit/xml_initialize_test.rb +49 -0
  94. data/test/unit/xml_name_test.rb +141 -0
  95. data/test/unit/xml_namespace_test.rb +76 -0
  96. data/test/unit/xml_object_test.rb +207 -0
  97. data/test/unit/xml_required_test.rb +93 -0
  98. data/test/unit/xml_text_test.rb +71 -0
  99. data/vendor/override_rake_task/README +30 -0
  100. data/vendor/override_rake_task/init.rb +1 -0
  101. data/vendor/override_rake_task/install.rb +46 -0
  102. data/vendor/override_rake_task/lib/override_rake_task.rb +16 -0
  103. data/website/index.html +98 -0
  104. metadata +234 -0
@@ -0,0 +1,93 @@
1
+ require File.join(File.dirname(__FILE__), '..', 'test_helper')
2
+
3
+ class TestXMLRequired < ActiveSupport::TestCase
4
+ def setup
5
+ @full_book = <<BOOK
6
+ <book ISBN="1234">
7
+ <title>This &amp; that</title>
8
+ <contributor_array>
9
+ <contributor role="Author">
10
+ <name>Johnny</name>
11
+ </contributor>
12
+ </contributor_array>
13
+ <contributor_hash>
14
+ <contributor role="Author" name="Johnny" />
15
+ </contributor_hash>
16
+ </book>
17
+ BOOK
18
+
19
+ @book_missing_attr = <<BOOK
20
+ <book>
21
+ <title>This &amp; that</title>
22
+ <contributor_array>
23
+ <contributor role="Author">
24
+ <name>Johnny</name>
25
+ </contributor>
26
+ </contributor_array>
27
+ <contributor_hash>
28
+ <contributor role="Author" name="Johnny" />
29
+ </contributor_hash>
30
+ </book>
31
+ BOOK
32
+
33
+ @book_missing_text = <<BOOK
34
+ <book ISBN="1234">
35
+ <contributor_array>
36
+ <contributor role="Author">
37
+ <name>Johnny</name>
38
+ </contributor>
39
+ </contributor_array>
40
+ <contributor_hash>
41
+ <contributor role="Author" name="Johnny" />
42
+ </contributor_hash>
43
+ </book>
44
+ BOOK
45
+
46
+ @book_missing_array = <<BOOK
47
+ <book ISBN="1234">
48
+ <title>This &amp; that</title>
49
+ <contributor_hash>
50
+ <contributor role="Author" name="Johnny" />
51
+ </contributor_hash>
52
+ </book>
53
+ BOOK
54
+
55
+ @book_missing_hash = <<BOOK
56
+ <book ISBN="1234">
57
+ <title>This &amp; that</title>
58
+ <contributor_array>
59
+ <contributor role="Author">
60
+ <name>Johnny</name>
61
+ </contributor>
62
+ </contributor_array>
63
+ </book>
64
+ BOOK
65
+ end
66
+
67
+ def test_required_passes_on_prescence
68
+ BookWithRequired.from_xml(@full_book)
69
+ end
70
+
71
+ def test_required_throws_on_attr_absence
72
+ assert_raise ROXML::RequiredElementMissing do
73
+ BookWithRequired.from_xml(@book_missing_attr)
74
  end
75
+ end
76
+
77
+ def test_required_throws_on_text_absence
78
+ assert_raise ROXML::RequiredElementMissing do
79
+ BookWithRequired.from_xml(@book_missing_text)
80
+ end
81
+ end
82
+
83
+ def test_required_throws_on_array_absence
84
+ assert_raise ROXML::RequiredElementMissing do
85
+ BookWithRequired.from_xml(@book_missing_array)
86
+ end
87
+ end
88
+
89
+ def test_required_throws_on_hash_absence
90
+ assert_raise ROXML::RequiredElementMissing do
91
+ BookWithRequired.from_xml(@book_missing_hash)
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,71 @@
1
+ require File.join(File.dirname(__FILE__), '..', 'test_helper')
2
+
3
+ class TestXMLText < ActiveSupport::TestCase
4
+ # Test a simple mapping with no composition
5
+ def test_valid_simple
6
+ book = Book.from_xml(fixture(:book_valid))
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", '')
11
+ end
12
+
13
+ def test_without_needed_from
14
+ assert !Library.from_xml(fixture(:library_uppercase)).name
15
+ end
16
+
17
+ def test_with_needed_from
18
+ assert_equal "Ruby library", Library.from_xml(fixture(:library)).name
19
+ assert_equal "Ruby library", UppercaseLibrary.from_xml(fixture(:library_uppercase)).name
20
+ end
21
+
22
+ def test_as_array
23
+ assert_equal ["David Thomas","Andrew Hunt","Dave Thomas"].sort,
24
+ BookWithAuthors.from_xml(fixture(:book_with_authors)).authors.sort
25
+ end
26
+
27
+ def test_empty_array_result_returned_properly
28
+ empty_array = Class.new do
29
+ include ROXML
30
+
31
+ xml_reader :missing_array, :as => [], :from => 'missing'
32
+ end
33
+
34
+ obj = empty_array.from_xml('<empty_array></empty_array>')
35
+ assert_equal [], obj.missing_array
36
+ end
37
+
38
+ def test_text_modification
39
+ person = Person.from_xml(fixture(:person))
40
+ assert_equal("Ben Franklin", person.name)
41
+ person.name = "Fred"
42
+ xml=person.to_xml.to_s
43
+ assert(/Fred/=~xml)
44
+ end
45
+
46
+ def test_default_initialization
47
+ person = PersonWithMotherOrMissing.from_xml(fixture(:nameless_ageless_youth))
48
+ assert_equal "Anonymous", person.name
49
+ end
50
+
51
+ def test_default_initialization_of_content
52
+ person = Person.from_xml(fixture(:nameless_ageless_youth))
53
+ assert_equal "Unknown", person.name
54
+ end
55
+
56
+ def test_recursive_with_default_initialization
57
+ p = PersonWithMotherOrMissing.from_xml(fixture(:person_with_mothers))
58
+ assert_equal 'Unknown', p.mother.mother.mother.name
59
+ end
60
+
61
+ def test_get_with_block
62
+ p = Book.from_xml(fixture(:book_valid))
63
+ assert_equal 357, p.pages
64
+ end
65
+
66
+ def test_no_name_clashes
67
+ n = NodeWithNameConflicts.from_xml(fixture(:node_with_name_conflicts))
68
+ assert_equal "Just junk... really", n.content
69
+ assert_equal "Cartwheel", n.name
70
+ end
71
+ end
@@ -0,0 +1,30 @@
1
+ OverrideRakeTask plugin by Eugene Bolshakov, eugene.bolshakov@gmail.com, http://www.taknado.com
2
+
3
+ This plugin is based on the Matthew Bass's idea described here:
4
+ http://matthewbass.com/2007/03/07/overriding-existing-rake-tasks/
5
+
6
+ The installation script is based on the one found in the app_config plugin
7
+ by Daniel Owsianski, http://jarmark.org/projects/app-config/
8
+
9
+ When using rake with rails it loads the task in the following order:
10
+
11
+ 1. Default rails tasks (like db:migrate)
12
+ 2. The tasks in your app's lib/tasks directory
13
+ 3. The tasks in your vendor/plugins directory
14
+
15
+ This plugin will allow to override rake tasks that were defined earlier. It means that
16
+ you'll be able to override default rails tasks with lib/tasks & plugins tasks and
17
+ override the taksks in lib/tasks with the tasks defined in plugins.
18
+
19
+ In order to override a task you need to define it as usual, but using "override_task"
20
+ method instead of "task":
21
+
22
+ namespace :db do
23
+ override_task :migrate do
24
+ ...
25
+ end
26
+ end
27
+
28
+ In order to make this work the plugin should be loaded before the tasks and the install script
29
+ supplied with the plugin adds a line to load itself to the Rakefile. If it won't be able to
30
+ modify your Rakefile, it will let you know and you'll have to modify it manually.
@@ -0,0 +1 @@
1
+ # Include hook code here
@@ -0,0 +1,46 @@
1
+ # Insert line: [require "#{RAILS_ROOT}/vendor/plugins/override_rake_task/lib/override_rake_task.rb"]
2
+ # before "require 'rake'" in Rakefile
3
+ # stolen from app_confing plugin :) http://jarmark.org/projects/app-config/
4
+
5
+ file = File.join(File.dirname(__FILE__), '../../../Rakefile')
6
+ unless File.exists?(file)
7
+ STDERR.puts("ERROR: Could not locate Rakefile")
8
+ exit(1)
9
+ end
10
+
11
+ # Tip from http://pleac.sourceforge.net/pleac_ruby/fileaccess.html
12
+ # 'Modifying a File in Place Without a Temporary File'
13
+ output= ""
14
+ inserted = false
15
+ line_to_insert = %q{require "#{RAILS_ROOT}/vendor/plugins/override_rake_task/lib/override_rake_task.rb"}
16
+ line_to_find = "require 'rake'"
17
+
18
+ File.open(file, 'r+') do |f| # open file for update
19
+ # read into array of lines and iterate through lines
20
+ f.readlines.each do |line|
21
+ unless inserted
22
+ if line.gsub(/#.*/, '').include?(line_to_insert)
23
+ inserted = true
24
+ elsif line.gsub(/#.*/, '').include?(line_to_find)
25
+ output << line_to_insert
26
+ output << "\n\n"
27
+ inserted = true
28
+ end
29
+ end
30
+ output << line
31
+ end
32
+ f.pos = 0 # back to start
33
+ f.print output # write out modified lines
34
+ f.truncate(f.pos) # truncate to new length
35
+ end
36
+
37
+ unless inserted
38
+ STDERR.puts <<END
39
+ ERROR: Could not update Rakefile
40
+ To finish installation please add the following line to
41
+ Rakefile manually:
42
+ \t#{line_to_insert}
43
+ NOTE: line must be inserted before #{line_to_find}
44
+ END
45
+ exit(1)
46
+ end
@@ -0,0 +1,16 @@
1
+ # OverrideRakeTask
2
+ Rake::TaskManager.class_eval do
3
+ def remove_task(task_name)
4
+ @tasks.delete(task_name.to_s)
5
+ end
6
+ end
7
+
8
+ def remove_task(task_name)
9
+ Rake.application.remove_task(task_name)
10
+ end
11
+
12
+ def override_task(*args, &block)
13
+ name, params, deps = Rake.application.resolve_args(args)
14
+ remove_task Rake.application[name].name
15
+ Rake::Task.define_task({name => deps}, &block)
16
+ end
@@ -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 ADDED
@@ -0,0 +1,234 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: doxo-roxml
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.5.3
5
+ platform: ruby
6
+ authors:
7
+ - Ben Woosley
8
+ - Zak Mandhro
9
+ - Anders Engstrom
10
+ - Russ Olsen
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+
15
+ date: 2009-03-22 00:00:00 -07:00
16
+ default_executable:
17
+ dependencies:
18
+ - !ruby/object:Gem::Dependency
19
+ name: activesupport
20
+ type: :runtime
21
+ version_requirement:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.1.0
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: 1.0.0
37
+ version:
38
+ - !ruby/object:Gem::Dependency
39
+ name: newgem
40
+ type: :development
41
+ version_requirement:
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.3.0
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:
68
+ - !ruby/object:Gem::Dependency
69
+ name: hoe
70
+ type: :development
71
+ version_requirement:
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 1.8.0
77
+ version:
78
+ description: ROXML is a Ruby library designed to make it easier for Ruby developers to work with XML. Using simple annotations, it enables Ruby classes to be mapped to XML. ROXML takes care of the marshalling and unmarshalling of mapped attributes so that developers can focus on building first-class Ruby classes. As a result, ROXML simplifies the development of RESTful applications, Web Services, and XML-RPC.
79
+ email: ben.woosley@gmail.com
80
+ executables: []
81
+
82
+ extensions: []
83
+
84
+ extra_rdoc_files:
85
+ - History.txt
86
+ - Manifest.txt
87
+ - README.rdoc
88
+ files:
89
+ - History.txt
90
+ - MIT-LICENSE
91
+ - Manifest.txt
92
+ - README.rdoc
93
+ - Rakefile
94
+ - TODO
95
+ - config/website.yml
96
+ - examples/active_record.rb
97
+ - examples/amazon.rb
98
+ - examples/current_weather.rb
99
+ - examples/dashed_elements.rb
100
+ - examples/library.rb
101
+ - examples/posts.rb
102
+ - examples/twitter.rb
103
+ - examples/xml/active_record.xml
104
+ - examples/xml/amazon.xml
105
+ - examples/xml/current_weather.xml
106
+ - examples/xml/dashed_elements.xml
107
+ - examples/xml/posts.xml
108
+ - examples/xml/twitter.xml
109
+ - lib/roxml.rb
110
+ - lib/roxml/definition.rb
111
+ - lib/roxml/extensions.rb
112
+ - lib/roxml/extensions/array.rb
113
+ - lib/roxml/extensions/array/conversions.rb
114
+ - lib/roxml/extensions/deprecation.rb
115
+ - lib/roxml/extensions/string.rb
116
+ - lib/roxml/extensions/string/conversions.rb
117
+ - lib/roxml/extensions/string/iterators.rb
118
+ - lib/roxml/hash_definition.rb
119
+ - lib/roxml/xml.rb
120
+ - lib/roxml/xml/parsers/libxml.rb
121
+ - lib/roxml/xml/parsers/rexml.rb
122
+ - lib/roxml/xml/references.rb
123
+ - roxml.gemspec
124
+ - spec/definition_spec.rb
125
+ - spec/examples/active_record_spec.rb
126
+ - spec/examples/amazon_spec.rb
127
+ - spec/examples/current_weather_spec.rb
128
+ - spec/examples/dashed_elements_spec.rb
129
+ - spec/examples/library_spec.rb
130
+ - spec/examples/post_spec.rb
131
+ - spec/examples/twitter_spec.rb
132
+ - spec/roxml_spec.rb
133
+ - spec/shared_specs.rb
134
+ - spec/spec.opts
135
+ - spec/spec_helper.rb
136
+ - spec/xml/parser_spec.rb
137
+ - tasks/rspec.rake
138
+ - tasks/test.rake
139
+ - test/bugs/rexml_bugs.rb
140
+ - test/fixtures/book_malformed.xml
141
+ - test/fixtures/book_pair.xml
142
+ - test/fixtures/book_text_with_attribute.xml
143
+ - test/fixtures/book_valid.xml
144
+ - test/fixtures/book_with_authors.xml
145
+ - test/fixtures/book_with_contributions.xml
146
+ - test/fixtures/book_with_contributors.xml
147
+ - test/fixtures/book_with_contributors_attrs.xml
148
+ - test/fixtures/book_with_default_namespace.xml
149
+ - test/fixtures/book_with_depth.xml
150
+ - test/fixtures/book_with_octal_pages.xml
151
+ - test/fixtures/book_with_publisher.xml
152
+ - test/fixtures/book_with_wrapped_attr.xml
153
+ - test/fixtures/dictionary_of_attr_name_clashes.xml
154
+ - test/fixtures/dictionary_of_attrs.xml
155
+ - test/fixtures/dictionary_of_guarded_names.xml
156
+ - test/fixtures/dictionary_of_mixeds.xml
157
+ - test/fixtures/dictionary_of_name_clashes.xml
158
+ - test/fixtures/dictionary_of_names.xml
159
+ - test/fixtures/dictionary_of_texts.xml
160
+ - test/fixtures/library.xml
161
+ - test/fixtures/library_uppercase.xml
162
+ - test/fixtures/muffins.xml
163
+ - test/fixtures/nameless_ageless_youth.xml
164
+ - test/fixtures/node_with_attr_name_conflicts.xml
165
+ - test/fixtures/node_with_name_conflicts.xml
166
+ - test/fixtures/numerology.xml
167
+ - test/fixtures/person.xml
168
+ - test/fixtures/person_with_guarded_mothers.xml
169
+ - test/fixtures/person_with_mothers.xml
170
+ - test/mocks/dictionaries.rb
171
+ - test/mocks/mocks.rb
172
+ - test/test_helper.rb
173
+ - test/unit/definition_test.rb
174
+ - test/unit/deprecations_test.rb
175
+ - test/unit/to_xml_test.rb
176
+ - test/unit/xml_attribute_test.rb
177
+ - test/unit/xml_block_test.rb
178
+ - test/unit/xml_bool_test.rb
179
+ - test/unit/xml_convention_test.rb
180
+ - test/unit/xml_hash_test.rb
181
+ - test/unit/xml_initialize_test.rb
182
+ - test/unit/xml_name_test.rb
183
+ - test/unit/xml_namespace_test.rb
184
+ - test/unit/xml_object_test.rb
185
+ - test/unit/xml_required_test.rb
186
+ - test/unit/xml_text_test.rb
187
+ - vendor/override_rake_task/README
188
+ - vendor/override_rake_task/init.rb
189
+ - vendor/override_rake_task/install.rb
190
+ - vendor/override_rake_task/lib/override_rake_task.rb
191
+ - website/index.html
192
+ has_rdoc: true
193
+ homepage: http://roxml.rubyforge.org
194
+ licenses:
195
+ post_install_message:
196
+ rdoc_options:
197
+ - --main
198
+ - README.rdoc
199
+ require_paths:
200
+ - lib
201
+ required_ruby_version: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - ">="
204
+ - !ruby/object:Gem::Version
205
+ version: "0"
206
+ version:
207
+ required_rubygems_version: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: "0"
212
+ version:
213
+ requirements: []
214
+
215
+ rubyforge_project: roxml
216
+ rubygems_version: 1.3.5
217
+ signing_key:
218
+ specification_version: 2
219
+ summary: Ruby Object to XML mapping library
220
+ test_files:
221
+ - test/unit/definition_test.rb
222
+ - test/unit/deprecations_test.rb
223
+ - test/unit/to_xml_test.rb
224
+ - test/unit/xml_attribute_test.rb
225
+ - test/unit/xml_block_test.rb
226
+ - test/unit/xml_bool_test.rb
227
+ - test/unit/xml_convention_test.rb
228
+ - test/unit/xml_hash_test.rb
229
+ - test/unit/xml_initialize_test.rb
230
+ - test/unit/xml_name_test.rb
231
+ - test/unit/xml_namespace_test.rb
232
+ - test/unit/xml_object_test.rb
233
+ - test/unit/xml_required_test.rb
234
+ - test/unit/xml_text_test.rb