roxml 2.5.3 → 3.1.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/.gitignore +7 -0
- data/.gitmodules +3 -0
- data/History.txt +38 -1
- data/README.rdoc +8 -5
- data/Rakefile +35 -36
- data/TODO +12 -35
- data/VERSION +1 -0
- data/examples/amazon.rb +8 -6
- data/examples/posts.rb +1 -1
- data/examples/{active_record.rb → rails.rb} +2 -2
- data/examples/twitter.rb +1 -1
- data/lib/roxml.rb +86 -151
- data/lib/roxml/definition.rb +64 -152
- data/lib/roxml/hash_definition.rb +5 -40
- data/lib/roxml/xml.rb +12 -9
- data/lib/roxml/xml/parsers/libxml.rb +22 -17
- data/lib/roxml/xml/parsers/nokogiri.rb +77 -0
- data/lib/roxml/xml/references.rb +66 -57
- data/roxml.gemspec +170 -19
- data/spec/definition_spec.rb +121 -198
- data/spec/examples/active_record_spec.rb +2 -2
- data/spec/examples/amazon_spec.rb +3 -2
- data/spec/examples/current_weather_spec.rb +2 -2
- data/spec/examples/dashed_elements_spec.rb +2 -2
- data/spec/examples/library_spec.rb +11 -6
- data/spec/examples/post_spec.rb +3 -3
- data/spec/examples/twitter_spec.rb +2 -2
- data/spec/roxml_spec.rb +15 -15
- data/spec/shared_specs.rb +1 -1
- data/spec/spec_helper.rb +8 -27
- data/spec/support/libxml.rb +3 -0
- data/spec/support/nokogiri.rb +3 -0
- data/spec/xml/attributes_spec.rb +36 -0
- data/spec/xml/namespace_spec.rb +240 -0
- data/spec/xml/namespaces_spec.rb +32 -0
- data/spec/xml/parser_spec.rb +9 -30
- data/tasks/rdoc.rake +13 -0
- data/tasks/rspec.rake +21 -17
- data/tasks/test.rake +13 -20
- data/test/mocks/dictionaries.rb +8 -7
- data/test/mocks/mocks.rb +20 -20
- data/test/support/fixtures.rb +11 -0
- data/test/test_helper.rb +3 -14
- data/test/unit/definition_test.rb +21 -95
- data/test/unit/deprecations_test.rb +1 -74
- data/test/unit/to_xml_test.rb +3 -3
- data/test/unit/xml_attribute_test.rb +1 -1
- data/test/unit/xml_block_test.rb +3 -3
- data/test/unit/xml_bool_test.rb +4 -4
- data/test/unit/xml_convention_test.rb +3 -3
- data/test/unit/xml_hash_test.rb +5 -14
- data/test/unit/xml_initialize_test.rb +2 -6
- data/test/unit/xml_name_test.rb +5 -24
- data/test/unit/xml_namespace_test.rb +1 -46
- data/test/unit/xml_object_test.rb +6 -6
- data/test/unit/xml_required_test.rb +3 -2
- data/test/unit/xml_text_test.rb +2 -2
- data/website/index.html +1 -1
- metadata +68 -51
- data/Manifest.txt +0 -106
- data/lib/roxml/extensions.rb +0 -6
- data/lib/roxml/extensions/array.rb +0 -13
- data/lib/roxml/extensions/array/conversions.rb +0 -35
- data/lib/roxml/extensions/deprecation.rb +0 -33
- data/lib/roxml/extensions/string.rb +0 -21
- data/lib/roxml/extensions/string/conversions.rb +0 -43
- data/lib/roxml/extensions/string/iterators.rb +0 -12
- data/lib/roxml/xml/parsers/rexml.rb +0 -84
- data/spec/string_spec.rb +0 -15
- data/test/bugs/rexml_bugs.rb +0 -15
- data/test/release/dependencies_test.rb +0 -32
- data/test/unit/xml_construct_test.rb +0 -77
- data/vendor/override_rake_task/README +0 -30
- data/vendor/override_rake_task/init.rb +0 -1
- data/vendor/override_rake_task/install.rb +0 -46
- data/vendor/override_rake_task/lib/override_rake_task.rb +0 -16
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
|
3
|
+
module ROXML
|
4
|
+
module XML # :nodoc:all
|
5
|
+
Document = Nokogiri::XML::Document
|
6
|
+
Element = Nokogiri::XML::Element
|
7
|
+
Node = Nokogiri::XML::Node
|
8
|
+
|
9
|
+
module Error; end
|
10
|
+
|
11
|
+
class Parser
|
12
|
+
class << self
|
13
|
+
def parse(string)
|
14
|
+
Nokogiri::XML(string)
|
15
|
+
end
|
16
|
+
|
17
|
+
def parse_file(path) #:nodoc:
|
18
|
+
path = path.sub('file:', '') if path.starts_with?('file:')
|
19
|
+
parse(open(path))
|
20
|
+
end
|
21
|
+
|
22
|
+
def parse_io(stream) #:nodoc:
|
23
|
+
parse(stream)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class Document
|
29
|
+
def save(path)
|
30
|
+
open(path, 'w') do |file|
|
31
|
+
file << serialize
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def default_namespace
|
36
|
+
'xmlns' if root.namespaces['xmlns']
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
module NodeExtensions
|
41
|
+
def search(xpath, roxml_namespaces = {})
|
42
|
+
xpath = "./#{xpath}"
|
43
|
+
(roxml_namespaces.present? ? super(xpath, roxml_namespaces) : super(xpath)).map {|i| i }
|
44
|
+
end
|
45
|
+
|
46
|
+
def attributes
|
47
|
+
self
|
48
|
+
end
|
49
|
+
|
50
|
+
def default_namespace
|
51
|
+
document.default_namespace
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
class Element
|
56
|
+
include NodeExtensions
|
57
|
+
|
58
|
+
def empty?
|
59
|
+
children.empty?
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
class Node
|
64
|
+
class << self
|
65
|
+
def new_cdata(content)
|
66
|
+
Nokogiri::XML::CDATA.new(Document.new, content)
|
67
|
+
end
|
68
|
+
|
69
|
+
def create(name)
|
70
|
+
new(name, Document.new)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
include NodeExtensions
|
74
|
+
alias :remove! :remove
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
data/lib/roxml/xml/references.rb
CHANGED
@@ -6,15 +6,15 @@ module ROXML
|
|
6
6
|
# Internal base class that represents an XML - Class binding.
|
7
7
|
#
|
8
8
|
class XMLRef # :nodoc:
|
9
|
-
delegate :required?, :array?, :blocks, :accessor, :
|
9
|
+
delegate :required?, :array?, :blocks, :accessor, :default, :wrapper, :to => :opts
|
10
10
|
|
11
11
|
def initialize(opts, instance)
|
12
12
|
@opts = opts
|
13
13
|
@instance = instance
|
14
14
|
end
|
15
15
|
|
16
|
-
def to_xml
|
17
|
-
val =
|
16
|
+
def to_xml(instance)
|
17
|
+
val = instance.__send__(accessor)
|
18
18
|
opts.to_xml.respond_to?(:call) ? opts.to_xml.call(val) : val
|
19
19
|
end
|
20
20
|
|
@@ -29,11 +29,7 @@ module ROXML
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def xpath_name
|
32
|
-
|
33
|
-
"#{namespace}:#{name}"
|
34
|
-
else
|
35
|
-
name
|
36
|
-
end
|
32
|
+
namespacify(name)
|
37
33
|
end
|
38
34
|
|
39
35
|
def value_in(xml)
|
@@ -56,13 +52,20 @@ module ROXML
|
|
56
52
|
end
|
57
53
|
end
|
58
54
|
|
59
|
-
def
|
60
|
-
|
55
|
+
def namespacify(what)
|
56
|
+
return "#{opts.namespace}:#{what}" if opts.namespace
|
57
|
+
|
58
|
+
namespace = @instance.class.roxml_namespace || @default_namespace
|
59
|
+
if namespace && what.present? && !what.include?(':') && (opts.namespace != false)
|
60
|
+
"#{namespace}:#{what}"
|
61
|
+
else
|
62
|
+
what
|
63
|
+
end
|
61
64
|
end
|
62
65
|
|
63
66
|
def apply_blocks(val)
|
64
67
|
begin
|
65
|
-
blocks.
|
68
|
+
blocks.inject(val) {|val, block| block.call(val) }
|
66
69
|
rescue Exception => ex
|
67
70
|
raise ex, "#{accessor}: #{ex.message}"
|
68
71
|
end
|
@@ -78,11 +81,15 @@ module ROXML
|
|
78
81
|
end
|
79
82
|
|
80
83
|
def xpath
|
81
|
-
wrapper ? "#{wrapper}/#{xpath_name}" : xpath_name.to_s
|
84
|
+
opts.wrapper ? "#{namespacify(opts.wrapper)}/#{xpath_name}" : xpath_name.to_s
|
82
85
|
end
|
83
86
|
|
84
87
|
def auto_xpath
|
85
|
-
"#{conventionize(opts.name.pluralize)}/#{xpath_name}" if array?
|
88
|
+
"#{namespacify(conventionize(opts.name.pluralize))}/#{xpath_name}" if array?
|
89
|
+
end
|
90
|
+
|
91
|
+
def several?
|
92
|
+
array?
|
86
93
|
end
|
87
94
|
|
88
95
|
def wrap(xml)
|
@@ -90,22 +97,27 @@ module ROXML
|
|
90
97
|
if child = xml.children.find {|c| c.name == wrapper }
|
91
98
|
return child
|
92
99
|
end
|
93
|
-
xml.add_child(XML::Node.
|
100
|
+
xml.add_child(XML::Node.create(wrapper.to_s))
|
94
101
|
end
|
95
102
|
|
96
103
|
def nodes_in(xml)
|
97
|
-
|
104
|
+
@default_namespace = xml.default_namespace
|
105
|
+
vals = xml.search(xpath, @instance.class.roxml_namespaces)
|
98
106
|
|
99
|
-
if
|
100
|
-
vals = xml.search(auto_xpath)
|
107
|
+
if several? && vals.empty? && !wrapper && auto_xpath
|
108
|
+
vals = xml.search(auto_xpath, @instance.class.roxml_namespaces)
|
101
109
|
@auto_vals = !vals.empty?
|
102
110
|
end
|
103
111
|
|
104
112
|
if vals.empty?
|
105
113
|
raise RequiredElementMissing, "#{name} from #{xml} for #{accessor}" if required?
|
106
114
|
default
|
115
|
+
elsif several?
|
116
|
+
vals.map do |val|
|
117
|
+
yield val
|
118
|
+
end
|
107
119
|
else
|
108
|
-
yield(vals)
|
120
|
+
yield(vals.first)
|
109
121
|
end
|
110
122
|
end
|
111
123
|
end
|
@@ -121,12 +133,12 @@ module ROXML
|
|
121
133
|
# Updates the attribute in the given XML block to
|
122
134
|
# the value provided.
|
123
135
|
def write_xml(xml, value)
|
124
|
-
xml.attributes[name] = value.to_s
|
136
|
+
xml.attributes[name] = value.to_s
|
125
137
|
end
|
126
138
|
|
127
139
|
def fetch_value(xml)
|
128
|
-
nodes_in(xml) do |
|
129
|
-
|
140
|
+
nodes_in(xml) do |node|
|
141
|
+
node.value
|
130
142
|
end
|
131
143
|
end
|
132
144
|
|
@@ -154,10 +166,10 @@ module ROXML
|
|
154
166
|
xml.name = value
|
155
167
|
elsif array?
|
156
168
|
value.each do |v|
|
157
|
-
add(xml.add_child(XML::Node.
|
169
|
+
add(xml.add_child(XML::Node.create(name)), v)
|
158
170
|
end
|
159
171
|
else
|
160
|
-
add(xml.add_child(XML::Node.
|
172
|
+
add(xml.add_child(XML::Node.create(name)), value)
|
161
173
|
end
|
162
174
|
end
|
163
175
|
|
@@ -177,23 +189,17 @@ module ROXML
|
|
177
189
|
value
|
178
190
|
end
|
179
191
|
else
|
180
|
-
nodes_in(xml) do |
|
181
|
-
|
182
|
-
nodes.collect do |e|
|
183
|
-
e.content.strip.to_latin_without_deprecation
|
184
|
-
end
|
185
|
-
else
|
186
|
-
nodes.first.content
|
187
|
-
end
|
192
|
+
nodes_in(xml) do |node|
|
193
|
+
node.content.strip
|
188
194
|
end
|
189
195
|
end
|
190
196
|
end
|
191
197
|
|
192
198
|
def add(dest, value)
|
193
199
|
if cdata?
|
194
|
-
dest.
|
200
|
+
dest.add_child(XML::Node.new_cdata(value.to_s))
|
195
201
|
else
|
196
|
-
dest.content = value.to_s
|
202
|
+
dest.content = value.to_s
|
197
203
|
end
|
198
204
|
end
|
199
205
|
end
|
@@ -207,22 +213,24 @@ module ROXML
|
|
207
213
|
@value = opts.hash.value.to_ref(inst)
|
208
214
|
end
|
209
215
|
|
216
|
+
def several?
|
217
|
+
true
|
218
|
+
end
|
219
|
+
|
210
220
|
private
|
211
221
|
# Updates the composed XML object in the given XML block to
|
212
222
|
# the value provided.
|
213
223
|
def write_xml(xml, value)
|
214
224
|
value.each_pair do |k, v|
|
215
|
-
node = xml.
|
225
|
+
node = xml.add_child(XML::Node.create(hash.wrapper))
|
216
226
|
@key.update_xml(node, k)
|
217
227
|
@value.update_xml(node, v)
|
218
228
|
end
|
219
229
|
end
|
220
230
|
|
221
231
|
def fetch_value(xml)
|
222
|
-
nodes_in(xml) do |
|
223
|
-
|
224
|
-
[@key.value_in(e), @value.value_in(e)]
|
225
|
-
end
|
232
|
+
nodes_in(xml) do |node|
|
233
|
+
[@key.value_in(node), @value.value_in(node)]
|
226
234
|
end
|
227
235
|
end
|
228
236
|
|
@@ -232,7 +240,7 @@ module ROXML
|
|
232
240
|
super(kvp)
|
233
241
|
end
|
234
242
|
end
|
235
|
-
vals
|
243
|
+
to_hash(vals) if vals
|
236
244
|
end
|
237
245
|
|
238
246
|
def freeze(vals)
|
@@ -243,6 +251,17 @@ module ROXML
|
|
243
251
|
vals
|
244
252
|
end
|
245
253
|
end
|
254
|
+
|
255
|
+
def to_hash(array)
|
256
|
+
hash = array.inject({}) do |result, (k, v)|
|
257
|
+
result[k] ||= []
|
258
|
+
result[k] << v
|
259
|
+
result
|
260
|
+
end
|
261
|
+
hash.each_pair do |k, v|
|
262
|
+
hash[k] = v.first if v.size == 1
|
263
|
+
end
|
264
|
+
end
|
246
265
|
end
|
247
266
|
|
248
267
|
class XMLObjectRef < XMLTextRef # :nodoc:
|
@@ -254,35 +273,25 @@ module ROXML
|
|
254
273
|
def write_xml(xml, value)
|
255
274
|
if array?
|
256
275
|
value.each do |v|
|
257
|
-
xml.
|
276
|
+
xml.add_child(v.to_xml(name))
|
258
277
|
end
|
259
278
|
elsif value.is_a?(ROXML)
|
260
|
-
xml.
|
279
|
+
xml.add_child(value.to_xml(name))
|
261
280
|
else
|
262
|
-
node = XML::Node.
|
281
|
+
node = XML::Node.create(name)
|
263
282
|
node.content = value.to_xml
|
264
|
-
xml.
|
283
|
+
xml.add_child(node)
|
265
284
|
end
|
266
285
|
end
|
267
286
|
|
268
287
|
def fetch_value(xml)
|
269
|
-
nodes_in(xml) do |
|
270
|
-
|
271
|
-
|
288
|
+
nodes_in(xml) do |node|
|
289
|
+
if type.respond_to? :from_xml
|
290
|
+
type.from_xml(node)
|
272
291
|
else
|
273
|
-
|
274
|
-
instantiate(e)
|
275
|
-
end
|
292
|
+
type.new(node)
|
276
293
|
end
|
277
294
|
end
|
278
295
|
end
|
279
|
-
|
280
|
-
def instantiate(elem)
|
281
|
-
if type.respond_to? :from_xml
|
282
|
-
type.from_xml(elem)
|
283
|
-
else
|
284
|
-
type.new(elem)
|
285
|
-
end
|
286
|
-
end
|
287
296
|
end
|
288
297
|
end
|
data/roxml.gemspec
CHANGED
@@ -1,50 +1,201 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
1
4
|
# -*- encoding: utf-8 -*-
|
2
5
|
|
3
6
|
Gem::Specification.new do |s|
|
4
7
|
s.name = %q{roxml}
|
5
|
-
s.version = "
|
8
|
+
s.version = "3.1.0"
|
6
9
|
|
7
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
11
|
s.authors = ["Ben Woosley", "Zak Mandhro", "Anders Engstrom", "Russ Olsen"]
|
9
|
-
s.date = %q{2009-
|
10
|
-
s.description = %q{ROXML is a Ruby library designed to make it easier for Ruby developers to work with XML.
|
12
|
+
s.date = %q{2009-10-16}
|
13
|
+
s.description = %q{ROXML is a Ruby library designed to make it easier for Ruby developers to work with XML.
|
14
|
+
Using simple annotations, it enables Ruby classes to be mapped to XML. ROXML takes care
|
15
|
+
of the marshalling and unmarshalling of mapped attributes so that developers can focus on
|
16
|
+
building first-class Ruby classes. As a result, ROXML simplifies the development of
|
17
|
+
RESTful applications, Web Services, and XML-RPC.
|
18
|
+
}
|
11
19
|
s.email = %q{ben.woosley@gmail.com}
|
12
|
-
s.extra_rdoc_files = [
|
13
|
-
|
14
|
-
|
20
|
+
s.extra_rdoc_files = [
|
21
|
+
"History.txt",
|
22
|
+
"README.rdoc"
|
23
|
+
]
|
24
|
+
s.files = [
|
25
|
+
".gitignore",
|
26
|
+
".gitmodules",
|
27
|
+
"History.txt",
|
28
|
+
"MIT-LICENSE",
|
29
|
+
"README.rdoc",
|
30
|
+
"Rakefile",
|
31
|
+
"TODO",
|
32
|
+
"VERSION",
|
33
|
+
"config/website.yml",
|
34
|
+
"examples/amazon.rb",
|
35
|
+
"examples/current_weather.rb",
|
36
|
+
"examples/dashed_elements.rb",
|
37
|
+
"examples/library.rb",
|
38
|
+
"examples/posts.rb",
|
39
|
+
"examples/rails.rb",
|
40
|
+
"examples/twitter.rb",
|
41
|
+
"examples/xml/active_record.xml",
|
42
|
+
"examples/xml/amazon.xml",
|
43
|
+
"examples/xml/current_weather.xml",
|
44
|
+
"examples/xml/dashed_elements.xml",
|
45
|
+
"examples/xml/posts.xml",
|
46
|
+
"examples/xml/twitter.xml",
|
47
|
+
"lib/roxml.rb",
|
48
|
+
"lib/roxml/definition.rb",
|
49
|
+
"lib/roxml/hash_definition.rb",
|
50
|
+
"lib/roxml/xml.rb",
|
51
|
+
"lib/roxml/xml/parsers/libxml.rb",
|
52
|
+
"lib/roxml/xml/parsers/nokogiri.rb",
|
53
|
+
"lib/roxml/xml/references.rb",
|
54
|
+
"roxml.gemspec",
|
55
|
+
"spec/definition_spec.rb",
|
56
|
+
"spec/examples/active_record_spec.rb",
|
57
|
+
"spec/examples/amazon_spec.rb",
|
58
|
+
"spec/examples/current_weather_spec.rb",
|
59
|
+
"spec/examples/dashed_elements_spec.rb",
|
60
|
+
"spec/examples/library_spec.rb",
|
61
|
+
"spec/examples/post_spec.rb",
|
62
|
+
"spec/examples/twitter_spec.rb",
|
63
|
+
"spec/roxml_spec.rb",
|
64
|
+
"spec/shared_specs.rb",
|
65
|
+
"spec/spec.opts",
|
66
|
+
"spec/spec_helper.rb",
|
67
|
+
"spec/support/libxml.rb",
|
68
|
+
"spec/support/nokogiri.rb",
|
69
|
+
"spec/xml/attributes_spec.rb",
|
70
|
+
"spec/xml/namespace_spec.rb",
|
71
|
+
"spec/xml/namespaces_spec.rb",
|
72
|
+
"spec/xml/parser_spec.rb",
|
73
|
+
"tasks/rdoc.rake",
|
74
|
+
"tasks/rspec.rake",
|
75
|
+
"tasks/test.rake",
|
76
|
+
"test/fixtures/book_malformed.xml",
|
77
|
+
"test/fixtures/book_pair.xml",
|
78
|
+
"test/fixtures/book_text_with_attribute.xml",
|
79
|
+
"test/fixtures/book_valid.xml",
|
80
|
+
"test/fixtures/book_with_authors.xml",
|
81
|
+
"test/fixtures/book_with_contributions.xml",
|
82
|
+
"test/fixtures/book_with_contributors.xml",
|
83
|
+
"test/fixtures/book_with_contributors_attrs.xml",
|
84
|
+
"test/fixtures/book_with_default_namespace.xml",
|
85
|
+
"test/fixtures/book_with_depth.xml",
|
86
|
+
"test/fixtures/book_with_octal_pages.xml",
|
87
|
+
"test/fixtures/book_with_publisher.xml",
|
88
|
+
"test/fixtures/book_with_wrapped_attr.xml",
|
89
|
+
"test/fixtures/dictionary_of_attr_name_clashes.xml",
|
90
|
+
"test/fixtures/dictionary_of_attrs.xml",
|
91
|
+
"test/fixtures/dictionary_of_guarded_names.xml",
|
92
|
+
"test/fixtures/dictionary_of_mixeds.xml",
|
93
|
+
"test/fixtures/dictionary_of_name_clashes.xml",
|
94
|
+
"test/fixtures/dictionary_of_names.xml",
|
95
|
+
"test/fixtures/dictionary_of_texts.xml",
|
96
|
+
"test/fixtures/library.xml",
|
97
|
+
"test/fixtures/library_uppercase.xml",
|
98
|
+
"test/fixtures/muffins.xml",
|
99
|
+
"test/fixtures/nameless_ageless_youth.xml",
|
100
|
+
"test/fixtures/node_with_attr_name_conflicts.xml",
|
101
|
+
"test/fixtures/node_with_name_conflicts.xml",
|
102
|
+
"test/fixtures/numerology.xml",
|
103
|
+
"test/fixtures/person.xml",
|
104
|
+
"test/fixtures/person_with_guarded_mothers.xml",
|
105
|
+
"test/fixtures/person_with_mothers.xml",
|
106
|
+
"test/mocks/dictionaries.rb",
|
107
|
+
"test/mocks/mocks.rb",
|
108
|
+
"test/support/fixtures.rb",
|
109
|
+
"test/test_helper.rb",
|
110
|
+
"test/unit/definition_test.rb",
|
111
|
+
"test/unit/deprecations_test.rb",
|
112
|
+
"test/unit/to_xml_test.rb",
|
113
|
+
"test/unit/xml_attribute_test.rb",
|
114
|
+
"test/unit/xml_block_test.rb",
|
115
|
+
"test/unit/xml_bool_test.rb",
|
116
|
+
"test/unit/xml_convention_test.rb",
|
117
|
+
"test/unit/xml_hash_test.rb",
|
118
|
+
"test/unit/xml_initialize_test.rb",
|
119
|
+
"test/unit/xml_name_test.rb",
|
120
|
+
"test/unit/xml_namespace_test.rb",
|
121
|
+
"test/unit/xml_object_test.rb",
|
122
|
+
"test/unit/xml_required_test.rb",
|
123
|
+
"test/unit/xml_text_test.rb",
|
124
|
+
"website/index.html"
|
125
|
+
]
|
15
126
|
s.homepage = %q{http://roxml.rubyforge.org}
|
16
|
-
s.rdoc_options = ["--
|
127
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
17
128
|
s.require_paths = ["lib"]
|
18
129
|
s.rubyforge_project = %q{roxml}
|
19
|
-
s.rubygems_version = %q{1.3.
|
130
|
+
s.rubygems_version = %q{1.3.5}
|
20
131
|
s.summary = %q{Ruby Object to XML mapping library}
|
21
|
-
s.test_files = [
|
132
|
+
s.test_files = [
|
133
|
+
"spec/definition_spec.rb",
|
134
|
+
"spec/examples/active_record_spec.rb",
|
135
|
+
"spec/examples/amazon_spec.rb",
|
136
|
+
"spec/examples/current_weather_spec.rb",
|
137
|
+
"spec/examples/dashed_elements_spec.rb",
|
138
|
+
"spec/examples/library_spec.rb",
|
139
|
+
"spec/examples/post_spec.rb",
|
140
|
+
"spec/examples/twitter_spec.rb",
|
141
|
+
"spec/roxml_spec.rb",
|
142
|
+
"spec/shared_specs.rb",
|
143
|
+
"spec/spec_helper.rb",
|
144
|
+
"spec/support/libxml.rb",
|
145
|
+
"spec/support/nokogiri.rb",
|
146
|
+
"spec/xml/attributes_spec.rb",
|
147
|
+
"spec/xml/namespace_spec.rb",
|
148
|
+
"spec/xml/namespaces_spec.rb",
|
149
|
+
"spec/xml/parser_spec.rb",
|
150
|
+
"test/mocks/dictionaries.rb",
|
151
|
+
"test/mocks/mocks.rb",
|
152
|
+
"test/support/fixtures.rb",
|
153
|
+
"test/test_helper.rb",
|
154
|
+
"test/unit/definition_test.rb",
|
155
|
+
"test/unit/deprecations_test.rb",
|
156
|
+
"test/unit/to_xml_test.rb",
|
157
|
+
"test/unit/xml_attribute_test.rb",
|
158
|
+
"test/unit/xml_block_test.rb",
|
159
|
+
"test/unit/xml_bool_test.rb",
|
160
|
+
"test/unit/xml_convention_test.rb",
|
161
|
+
"test/unit/xml_hash_test.rb",
|
162
|
+
"test/unit/xml_initialize_test.rb",
|
163
|
+
"test/unit/xml_name_test.rb",
|
164
|
+
"test/unit/xml_namespace_test.rb",
|
165
|
+
"test/unit/xml_object_test.rb",
|
166
|
+
"test/unit/xml_required_test.rb",
|
167
|
+
"test/unit/xml_text_test.rb",
|
168
|
+
"examples/amazon.rb",
|
169
|
+
"examples/current_weather.rb",
|
170
|
+
"examples/dashed_elements.rb",
|
171
|
+
"examples/library.rb",
|
172
|
+
"examples/posts.rb",
|
173
|
+
"examples/rails.rb",
|
174
|
+
"examples/twitter.rb"
|
175
|
+
]
|
22
176
|
|
23
177
|
if s.respond_to? :specification_version then
|
24
178
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
25
|
-
s.specification_version =
|
179
|
+
s.specification_version = 3
|
26
180
|
|
27
181
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
28
182
|
s.add_runtime_dependency(%q<activesupport>, [">= 2.1.0"])
|
29
|
-
s.add_runtime_dependency(%q<
|
30
|
-
s.add_development_dependency(%q<
|
183
|
+
s.add_runtime_dependency(%q<nokogiri>, [">= 1.3.3"])
|
184
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
31
185
|
s.add_development_dependency(%q<sqlite3-ruby>, [">= 1.2.4"])
|
32
186
|
s.add_development_dependency(%q<activerecord>, [">= 2.2.2"])
|
33
|
-
s.add_development_dependency(%q<hoe>, [">= 1.8.0"])
|
34
187
|
else
|
35
188
|
s.add_dependency(%q<activesupport>, [">= 2.1.0"])
|
36
|
-
s.add_dependency(%q<
|
37
|
-
s.add_dependency(%q<
|
189
|
+
s.add_dependency(%q<nokogiri>, [">= 1.3.3"])
|
190
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
38
191
|
s.add_dependency(%q<sqlite3-ruby>, [">= 1.2.4"])
|
39
192
|
s.add_dependency(%q<activerecord>, [">= 2.2.2"])
|
40
|
-
s.add_dependency(%q<hoe>, [">= 1.8.0"])
|
41
193
|
end
|
42
194
|
else
|
43
195
|
s.add_dependency(%q<activesupport>, [">= 2.1.0"])
|
44
|
-
s.add_dependency(%q<
|
45
|
-
s.add_dependency(%q<
|
196
|
+
s.add_dependency(%q<nokogiri>, [">= 1.3.3"])
|
197
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
46
198
|
s.add_dependency(%q<sqlite3-ruby>, [">= 1.2.4"])
|
47
199
|
s.add_dependency(%q<activerecord>, [">= 2.2.2"])
|
48
|
-
s.add_dependency(%q<hoe>, [">= 1.8.0"])
|
49
200
|
end
|
50
201
|
end
|