xml_data_builder 1.0.0
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.
- data/.document +5 -0
- data/Gemfile +26 -0
- data/Gemfile.lock +34 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +73 -0
- data/Rakefile +53 -0
- data/VERSION +1 -0
- data/lib/xml_data_builder.rb +61 -0
- data/spec/xml_data_builder_spec.rb +108 -0
- data/xml_data_builder.gemspec +70 -0
- metadata +186 -0
data/.document
ADDED
data/Gemfile
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
# Add dependencies required to use your gem here.
|
3
|
+
# Example:
|
4
|
+
# gem "activesupport", ">= 2.3.5"
|
5
|
+
|
6
|
+
# Add dependencies to develop your gem here.
|
7
|
+
# Include everything needed to run rake, tests, features, etc.
|
8
|
+
group :development do
|
9
|
+
gem "shoulda", ">= 0"
|
10
|
+
gem "bundler", "~> 1.0.0"
|
11
|
+
gem "jeweler", "~> 1.5.2"
|
12
|
+
gem "builder", ">= 3.0.0"
|
13
|
+
gem "rspec", ">= 2.3.0"
|
14
|
+
gem "activesupport", ">= 3.0.0"
|
15
|
+
gem "i18n", ">= 0.5.0"
|
16
|
+
end
|
17
|
+
|
18
|
+
group :test do
|
19
|
+
gem "shoulda", ">= 0"
|
20
|
+
gem "bundler", "~> 1.0.0"
|
21
|
+
gem "jeweler", "~> 1.5.2"
|
22
|
+
gem "builder", ">= 3.0.0"
|
23
|
+
gem "rspec", ">= 2.3.0"
|
24
|
+
gem "activesupport", ">= 3.0.0"
|
25
|
+
gem "i18n", ">= 0.5.0"
|
26
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
activesupport (3.0.3)
|
5
|
+
builder (3.0.0)
|
6
|
+
diff-lcs (1.1.2)
|
7
|
+
git (1.2.5)
|
8
|
+
i18n (0.5.0)
|
9
|
+
jeweler (1.5.2)
|
10
|
+
bundler (~> 1.0.0)
|
11
|
+
git (>= 1.2.5)
|
12
|
+
rake
|
13
|
+
rake (0.8.7)
|
14
|
+
rspec (2.3.0)
|
15
|
+
rspec-core (~> 2.3.0)
|
16
|
+
rspec-expectations (~> 2.3.0)
|
17
|
+
rspec-mocks (~> 2.3.0)
|
18
|
+
rspec-core (2.3.1)
|
19
|
+
rspec-expectations (2.3.0)
|
20
|
+
diff-lcs (~> 1.1.2)
|
21
|
+
rspec-mocks (2.3.0)
|
22
|
+
shoulda (2.11.3)
|
23
|
+
|
24
|
+
PLATFORMS
|
25
|
+
ruby
|
26
|
+
|
27
|
+
DEPENDENCIES
|
28
|
+
activesupport (>= 3.0.0)
|
29
|
+
builder (>= 3.0.0)
|
30
|
+
bundler (~> 1.0.0)
|
31
|
+
i18n (>= 0.5.0)
|
32
|
+
jeweler (~> 1.5.2)
|
33
|
+
rspec (>= 2.3.0)
|
34
|
+
shoulda
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2011 Travel IQ GmbH
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
= xml_data_builder
|
2
|
+
|
3
|
+
XmlDataBuilder renders Ruby data structures as XML using Builder.
|
4
|
+
It is designed to use the lowest common denominator between JSON and XML.
|
5
|
+
When using arrays as input XmlDataBuilder uses the key of the outer hash as a grouping tag and wraps the values in singularized tags.
|
6
|
+
Symbols and Strings are equivalent.
|
7
|
+
|
8
|
+
Usage is simple: You initialize XmlDataBuilder with ruby data structure and call #document:
|
9
|
+
|
10
|
+
>> puts XmlDataBuilder.new({}).document
|
11
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
12
|
+
|
13
|
+
>> puts XmlDataBuilder.new({:data => 1}).document
|
14
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
15
|
+
<data>1</data>
|
16
|
+
|
17
|
+
>> puts XmlDataBuilder.new({:outer => {:inner => 'data'}}).document
|
18
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
19
|
+
<outer>
|
20
|
+
<inner>data</inner>
|
21
|
+
</outer>
|
22
|
+
|
23
|
+
>> puts XmlDataBuilder.new({:outer => {:inner => 'data'}}, :indent => 0).document
|
24
|
+
<?xml version="1.0" encoding="UTF-8"?><outer><inner>data</inner></outer>
|
25
|
+
|
26
|
+
>> puts XmlDataBuilder.new({:numbers => [1, 2, 3]}).document
|
27
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
28
|
+
<numbers>
|
29
|
+
<number>1</number>
|
30
|
+
<number>2</number>
|
31
|
+
<number>3</number>
|
32
|
+
</numbers>
|
33
|
+
|
34
|
+
>> puts XmlDataBuilder.new({:numbers => [{:value => 1, :type => 'odd'}, {:value => 2, :type => 'even'}]}).document
|
35
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
36
|
+
<numbers>
|
37
|
+
<number>
|
38
|
+
<type>odd</type>
|
39
|
+
<value>1</value>
|
40
|
+
</number>
|
41
|
+
<number>
|
42
|
+
<type>even</type>
|
43
|
+
<value>2</value>
|
44
|
+
</number>
|
45
|
+
</numbers>
|
46
|
+
|
47
|
+
>> puts XmlDataBuilder.new({:verbatim => XmlDataBuilder::CDATA.new('eßcape thïs!')}).document
|
48
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
49
|
+
<verbatim>
|
50
|
+
<![CDATA[eßcape thïs!]]>
|
51
|
+
</verbatim>
|
52
|
+
|
53
|
+
== Caveat
|
54
|
+
|
55
|
+
The root element has to be a Hash and at least every second level has to be a Hash.
|
56
|
+
XML attributes are not supported.
|
57
|
+
|
58
|
+
== Installation
|
59
|
+
|
60
|
+
(sudo) gem install xml_data_builder
|
61
|
+
|
62
|
+
== Authors
|
63
|
+
|
64
|
+
Dr. Florian Odronitz (odo@mac.com)
|
65
|
+
|
66
|
+
== Contact
|
67
|
+
|
68
|
+
For questions, contact the authors or developer@traveliq.net
|
69
|
+
|
70
|
+
== Copyright
|
71
|
+
|
72
|
+
Copyright (c) 2011 www.travel-iq.com. See LICENSE.txt for
|
73
|
+
further details.
|
data/Rakefile
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
require 'rake'
|
11
|
+
|
12
|
+
require 'jeweler'
|
13
|
+
Jeweler::Tasks.new do |gem|
|
14
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
15
|
+
gem.name = "xml_data_builder"
|
16
|
+
gem.homepage = "http://github.com/odo/xml_data_builder"
|
17
|
+
gem.license = "MIT"
|
18
|
+
gem.summary = %Q{TODO: one-line summary of your gem}
|
19
|
+
gem.description = %Q{TODO: longer description of your gem}
|
20
|
+
gem.email = "odo@mac.com"
|
21
|
+
gem.authors = ["odo"]
|
22
|
+
# Include your dependencies below. Runtime dependencies are required when using your gem,
|
23
|
+
# and development dependencies are only needed for development (ie running rake tasks, tests, etc)
|
24
|
+
# gem.add_runtime_dependency 'jabber4r', '> 0.1'
|
25
|
+
# gem.add_development_dependency 'rspec', '> 1.2.3'
|
26
|
+
end
|
27
|
+
Jeweler::RubygemsDotOrgTasks.new
|
28
|
+
|
29
|
+
require 'rake/testtask'
|
30
|
+
Rake::TestTask.new(:test) do |test|
|
31
|
+
test.libs << 'lib' << 'test'
|
32
|
+
test.pattern = 'test/**/test_*.rb'
|
33
|
+
test.verbose = true
|
34
|
+
end
|
35
|
+
|
36
|
+
require 'rcov/rcovtask'
|
37
|
+
Rcov::RcovTask.new do |test|
|
38
|
+
test.libs << 'test'
|
39
|
+
test.pattern = 'test/**/test_*.rb'
|
40
|
+
test.verbose = true
|
41
|
+
end
|
42
|
+
|
43
|
+
task :default => :test
|
44
|
+
|
45
|
+
require 'rake/rdoctask'
|
46
|
+
Rake::RDocTask.new do |rdoc|
|
47
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
48
|
+
|
49
|
+
rdoc.rdoc_dir = 'rdoc'
|
50
|
+
rdoc.title = "xml_data_builder #{version}"
|
51
|
+
rdoc.rdoc_files.include('README*')
|
52
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
53
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.0.0
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'builder'
|
2
|
+
require 'active_support/inflector'
|
3
|
+
class XmlDataBuilder
|
4
|
+
|
5
|
+
class CDATA < String
|
6
|
+
|
7
|
+
def initialize(template = nil)
|
8
|
+
super(template.to_s)
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
def initialize(data, options = {})
|
14
|
+
@data, @options = data, options
|
15
|
+
end
|
16
|
+
|
17
|
+
def document
|
18
|
+
indent = @options[:indent] || 2
|
19
|
+
output = String.new
|
20
|
+
xml = Builder::XmlMarkup.new(:target => output, :indent => indent)
|
21
|
+
xml.instruct!
|
22
|
+
to_xml(xml, @data)
|
23
|
+
return output
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def to_xml(parent, data)
|
29
|
+
raise ArgumentError, "Expected a Hash, got #{data.inspect}" unless data.is_a? Hash
|
30
|
+
data.each do |key, value|
|
31
|
+
case value
|
32
|
+
when Hash
|
33
|
+
parent.__send__(key.to_sym) do |child|
|
34
|
+
to_xml(child, value)
|
35
|
+
end
|
36
|
+
when Array
|
37
|
+
parent.__send__(key.to_sym) do
|
38
|
+
value.each do |single_value|
|
39
|
+
case single_value
|
40
|
+
when Hash
|
41
|
+
parent.__send__(key.to_s.singularize.to_sym) do |child|
|
42
|
+
to_xml(child, single_value)
|
43
|
+
end
|
44
|
+
else
|
45
|
+
raise ArgumentError, "Unable to handle nested arrays" if single_value.is_a? Array
|
46
|
+
parent.__send__(key.to_s.singularize.to_sym, single_value)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
when CDATA
|
51
|
+
parent.__send__(key.to_sym) do |child|
|
52
|
+
parent.cdata! value
|
53
|
+
end
|
54
|
+
when Symbol
|
55
|
+
parent.__send__(key.to_s.to_sym, value.to_s)
|
56
|
+
else
|
57
|
+
parent.__send__(key.to_s.to_sym, value)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
require 'xml_data_builder'
|
3
|
+
require 'builder'
|
4
|
+
require 'active_support/inflector'
|
5
|
+
|
6
|
+
describe XmlDataBuilder do
|
7
|
+
|
8
|
+
it "should render an empty document" do
|
9
|
+
data = {}
|
10
|
+
xml = XmlDataBuilder.new(data, :indent => 2)
|
11
|
+
xml.document.strip.should == '<?xml version="1.0" encoding="UTF-8"?>'
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should render integers" do
|
15
|
+
data = {:my_number => 1}
|
16
|
+
xml = XmlDataBuilder.new(data, :indent => 2)
|
17
|
+
xml.document.strip.should ==
|
18
|
+
'<?xml version="1.0" encoding="UTF-8"?>
|
19
|
+
<my_number>1</my_number>'
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should render floats" do
|
23
|
+
data = {:pi => 3.14}
|
24
|
+
xml = XmlDataBuilder.new(data, :indent => 2)
|
25
|
+
xml.document.strip.should ==
|
26
|
+
'<?xml version="1.0" encoding="UTF-8"?>
|
27
|
+
<pi>3.14</pi>'
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should render symbold" do
|
31
|
+
data = {:symbol => 'prince'}
|
32
|
+
xml = XmlDataBuilder.new(data, :indent => 2)
|
33
|
+
xml.document.strip.should ==
|
34
|
+
'<?xml version="1.0" encoding="UTF-8"?>
|
35
|
+
<symbol>prince</symbol>'
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should render strings" do
|
39
|
+
data = {:my_string => 'boring!'}
|
40
|
+
xml = XmlDataBuilder.new(data, :indent => 2)
|
41
|
+
xml.document.strip.should ==
|
42
|
+
'<?xml version="1.0" encoding="UTF-8"?>
|
43
|
+
<my_string>boring!</my_string>'
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should render CDATA" do
|
47
|
+
data = {:my_cdata => XmlDataBuilder::CDATA.new('<Oh my!/>')}
|
48
|
+
xml = XmlDataBuilder.new(data, :indent => 2)
|
49
|
+
xml.document.strip.should ==
|
50
|
+
'<?xml version="1.0" encoding="UTF-8"?>
|
51
|
+
<my_cdata>
|
52
|
+
<![CDATA[<Oh my!/>]]>
|
53
|
+
</my_cdata>'
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should render nested data" do
|
57
|
+
data = {:my_data => {:one => 1, :two => 2}}
|
58
|
+
xml = XmlDataBuilder.new(data, :indent => 2)
|
59
|
+
xml.document.strip.split("\n").sort.should ==
|
60
|
+
'<?xml version="1.0" encoding="UTF-8"?>
|
61
|
+
<my_data>
|
62
|
+
<two>2</two>
|
63
|
+
<one>1</one>
|
64
|
+
</my_data>'.split("\n").sort
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should render arrays" do
|
68
|
+
data = {:items => ['bread', 'butter']}
|
69
|
+
xml = XmlDataBuilder.new(data, :indent => 2)
|
70
|
+
xml.document.strip.should ==
|
71
|
+
'<?xml version="1.0" encoding="UTF-8"?>
|
72
|
+
<items>
|
73
|
+
<item>bread</item>
|
74
|
+
<item>butter</item>
|
75
|
+
</items>'
|
76
|
+
end
|
77
|
+
|
78
|
+
it "should render complex data" do
|
79
|
+
data = {:nest => {:inner_elements => [{:one => 1.0}, {:two => 'two', :wtf => XmlDataBuilder::CDATA.new(42)}]}}
|
80
|
+
xml = XmlDataBuilder.new(data, :indent => 2)
|
81
|
+
xml.document.strip.split("\n").sort.should ==
|
82
|
+
'<?xml version="1.0" encoding="UTF-8"?>
|
83
|
+
<nest>
|
84
|
+
<inner_elements>
|
85
|
+
<inner_element>
|
86
|
+
<one>1.0</one>
|
87
|
+
</inner_element>
|
88
|
+
<inner_element>
|
89
|
+
<two>two</two>
|
90
|
+
<wtf>
|
91
|
+
<![CDATA[42]]>
|
92
|
+
</wtf>
|
93
|
+
</inner_element>
|
94
|
+
</inner_elements>
|
95
|
+
</nest>'.split("\n").sort
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should not except arrays" do
|
99
|
+
data = [:illegal]
|
100
|
+
lambda{ XmlDataBuilder.new(data, :indent => 2).document }.should raise_error ArgumentError
|
101
|
+
end
|
102
|
+
|
103
|
+
it "should not except nested arrays within the structure" do
|
104
|
+
data = {:illegal => [[:me]]}
|
105
|
+
lambda{ XmlDataBuilder.new(data, :indent => 2).document }.should raise_error ArgumentError
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{xml_data_builder}
|
8
|
+
s.version = "1.0.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["odo"]
|
12
|
+
s.date = %q{2011-02-22}
|
13
|
+
s.description = %q{XmlDataBuilder renders Ruby data structures as XML using Builder.}
|
14
|
+
s.email = %q{odo@mac.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
"Gemfile",
|
22
|
+
"Gemfile.lock",
|
23
|
+
"LICENSE.txt",
|
24
|
+
"README.rdoc",
|
25
|
+
"Rakefile",
|
26
|
+
"VERSION",
|
27
|
+
"lib/xml_data_builder.rb",
|
28
|
+
"spec/xml_data_builder_spec.rb",
|
29
|
+
"xml_data_builder.gemspec"
|
30
|
+
]
|
31
|
+
s.homepage = %q{http://github.com/odo/xml_data_builder}
|
32
|
+
s.licenses = ["MIT"]
|
33
|
+
s.require_paths = ["lib"]
|
34
|
+
s.rubygems_version = %q{1.5.0}
|
35
|
+
s.summary = %q{XmlDataBuilder renders Ruby data structures as XML using Builder.}
|
36
|
+
s.test_files = [
|
37
|
+
"spec/xml_data_builder_spec.rb"
|
38
|
+
]
|
39
|
+
|
40
|
+
if s.respond_to? :specification_version then
|
41
|
+
s.specification_version = 3
|
42
|
+
|
43
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
44
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
45
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
46
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
47
|
+
s.add_development_dependency(%q<builder>, [">= 3.0.0"])
|
48
|
+
s.add_development_dependency(%q<rspec>, [">= 2.3.0"])
|
49
|
+
s.add_development_dependency(%q<activesupport>, [">= 3.0.0"])
|
50
|
+
s.add_development_dependency(%q<i18n>, [">= 0.5.0"])
|
51
|
+
else
|
52
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
53
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
54
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
55
|
+
s.add_dependency(%q<builder>, [">= 3.0.0"])
|
56
|
+
s.add_dependency(%q<rspec>, [">= 2.3.0"])
|
57
|
+
s.add_dependency(%q<activesupport>, [">= 3.0.0"])
|
58
|
+
s.add_dependency(%q<i18n>, [">= 0.5.0"])
|
59
|
+
end
|
60
|
+
else
|
61
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
62
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
63
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
64
|
+
s.add_dependency(%q<builder>, [">= 3.0.0"])
|
65
|
+
s.add_dependency(%q<rspec>, [">= 2.3.0"])
|
66
|
+
s.add_dependency(%q<activesupport>, [">= 3.0.0"])
|
67
|
+
s.add_dependency(%q<i18n>, [">= 0.5.0"])
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
metadata
ADDED
@@ -0,0 +1,186 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: xml_data_builder
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 23
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
version: 1.0.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- odo
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-02-22 00:00:00 +01:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: shoulda
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :development
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: bundler
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 23
|
44
|
+
segments:
|
45
|
+
- 1
|
46
|
+
- 0
|
47
|
+
- 0
|
48
|
+
version: 1.0.0
|
49
|
+
type: :development
|
50
|
+
version_requirements: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: jeweler
|
53
|
+
prerelease: false
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ~>
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 7
|
60
|
+
segments:
|
61
|
+
- 1
|
62
|
+
- 5
|
63
|
+
- 2
|
64
|
+
version: 1.5.2
|
65
|
+
type: :development
|
66
|
+
version_requirements: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: builder
|
69
|
+
prerelease: false
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 7
|
76
|
+
segments:
|
77
|
+
- 3
|
78
|
+
- 0
|
79
|
+
- 0
|
80
|
+
version: 3.0.0
|
81
|
+
type: :development
|
82
|
+
version_requirements: *id004
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec
|
85
|
+
prerelease: false
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
hash: 3
|
92
|
+
segments:
|
93
|
+
- 2
|
94
|
+
- 3
|
95
|
+
- 0
|
96
|
+
version: 2.3.0
|
97
|
+
type: :development
|
98
|
+
version_requirements: *id005
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: activesupport
|
101
|
+
prerelease: false
|
102
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
103
|
+
none: false
|
104
|
+
requirements:
|
105
|
+
- - ">="
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
hash: 7
|
108
|
+
segments:
|
109
|
+
- 3
|
110
|
+
- 0
|
111
|
+
- 0
|
112
|
+
version: 3.0.0
|
113
|
+
type: :development
|
114
|
+
version_requirements: *id006
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
name: i18n
|
117
|
+
prerelease: false
|
118
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
hash: 11
|
124
|
+
segments:
|
125
|
+
- 0
|
126
|
+
- 5
|
127
|
+
- 0
|
128
|
+
version: 0.5.0
|
129
|
+
type: :development
|
130
|
+
version_requirements: *id007
|
131
|
+
description: XmlDataBuilder renders Ruby data structures as XML using Builder.
|
132
|
+
email: odo@mac.com
|
133
|
+
executables: []
|
134
|
+
|
135
|
+
extensions: []
|
136
|
+
|
137
|
+
extra_rdoc_files:
|
138
|
+
- LICENSE.txt
|
139
|
+
- README.rdoc
|
140
|
+
files:
|
141
|
+
- .document
|
142
|
+
- Gemfile
|
143
|
+
- Gemfile.lock
|
144
|
+
- LICENSE.txt
|
145
|
+
- README.rdoc
|
146
|
+
- Rakefile
|
147
|
+
- VERSION
|
148
|
+
- lib/xml_data_builder.rb
|
149
|
+
- spec/xml_data_builder_spec.rb
|
150
|
+
- xml_data_builder.gemspec
|
151
|
+
has_rdoc: true
|
152
|
+
homepage: http://github.com/odo/xml_data_builder
|
153
|
+
licenses:
|
154
|
+
- MIT
|
155
|
+
post_install_message:
|
156
|
+
rdoc_options: []
|
157
|
+
|
158
|
+
require_paths:
|
159
|
+
- lib
|
160
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
hash: 3
|
166
|
+
segments:
|
167
|
+
- 0
|
168
|
+
version: "0"
|
169
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
|
+
none: false
|
171
|
+
requirements:
|
172
|
+
- - ">="
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
hash: 3
|
175
|
+
segments:
|
176
|
+
- 0
|
177
|
+
version: "0"
|
178
|
+
requirements: []
|
179
|
+
|
180
|
+
rubyforge_project:
|
181
|
+
rubygems_version: 1.5.0
|
182
|
+
signing_key:
|
183
|
+
specification_version: 3
|
184
|
+
summary: XmlDataBuilder renders Ruby data structures as XML using Builder.
|
185
|
+
test_files:
|
186
|
+
- spec/xml_data_builder_spec.rb
|