multi_xml 0.4.1 → 0.4.2
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.
Potentially problematic release.
This version of multi_xml might be problematic. Click here for more details.
- data/.rspec +1 -2
- data/.travis.yml +1 -2
- data/Gemfile +4 -4
- data/README.md +73 -58
- data/lib/multi_xml.rb +17 -3
- data/lib/multi_xml/parsers/ox.rb +2 -2
- data/lib/multi_xml/version.rb +1 -1
- data/multi_xml.gemspec +5 -8
- data/spec/parser_shared_example.rb +30 -2
- metadata +85 -141
data/.rspec
CHANGED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
source '
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
group :development, :test do
|
4
|
-
gem 'libxml-ruby',
|
5
|
-
gem 'nokogiri',
|
6
|
-
gem 'ox',
|
4
|
+
gem 'libxml-ruby', :require => nil, :platforms => :mri
|
5
|
+
gem 'nokogiri', :require => nil
|
6
|
+
gem 'ox', :require => nil
|
7
7
|
end
|
8
8
|
|
9
9
|
gemspec
|
data/README.md
CHANGED
@@ -1,50 +1,53 @@
|
|
1
|
-
# MultiXML
|
1
|
+
# MultiXML [][travis] [][gemnasium]
|
2
2
|
A generic swappable back-end for XML parsing
|
3
3
|
|
4
|
-
|
4
|
+
[travis]: http://travis-ci.org/sferik/multi_xml
|
5
|
+
[gemnasium]: https://gemnasium.com/sferik/multi_xml
|
6
|
+
|
7
|
+
## <a name="installation"></a>Installation
|
5
8
|
gem install multi_xml
|
6
9
|
|
7
|
-
## <a name="documentation">Documentation
|
8
|
-
[http://rdoc.info/gems/multi_xml]
|
10
|
+
## <a name="documentation"></a>Documentation
|
11
|
+
[http://rdoc.info/gems/multi_xml][documentation]
|
9
12
|
|
10
|
-
|
11
|
-
[](http://travis-ci.org/sferik/multi_xml)
|
13
|
+
[documentation]: http://rdoc.info/gems/multi_xml
|
12
14
|
|
13
|
-
## <a name="examples">Usage Examples
|
15
|
+
## <a name="examples"></a>Usage Examples
|
14
16
|
Lots of Ruby libraries utilize XML parsing in some form, and everyone has their
|
15
17
|
favorite XML library. In order to best support multiple XML parsers and
|
16
|
-
libraries,
|
17
|
-
|
18
|
+
libraries, `multi_xml` is a general-purpose swappable XML backend library. You
|
19
|
+
use it like so:
|
18
20
|
|
19
21
|
require 'multi_xml'
|
20
22
|
|
21
|
-
MultiXml.parser = :
|
22
|
-
MultiXml.
|
23
|
-
|
23
|
+
MultiXml.parser = :ox MultiXml.parser = MultiXml::Parsers::Ox # Same as
|
24
|
+
above MultiXml.parse('<tag>This is the contents</tag>') # Parsed using Ox
|
25
|
+
|
26
|
+
MultiXml.parser = :libxml MultiXml.parser = MultiXml::Parsers::Libxml #
|
27
|
+
Same as above MultiXml.parse('<tag>This is the contents</tag>') # Parsed
|
28
|
+
using LibXML
|
24
29
|
|
25
|
-
MultiXml.parser = :nokogiri
|
26
|
-
MultiXml.
|
27
|
-
|
30
|
+
MultiXml.parser = :nokogiri MultiXml.parser = MultiXml::Parsers::Nokogiri #
|
31
|
+
Same as above MultiXml.parse('<tag>This is the contents</tag>') # Parsed
|
32
|
+
using Nokogiri
|
28
33
|
|
29
|
-
MultiXml.parser = :
|
30
|
-
MultiXml.
|
31
|
-
|
34
|
+
MultiXml.parser = :rexml MultiXml.parser = MultiXml::Parsers::Rexml # Same
|
35
|
+
as above MultiXml.parse('<tag>This is the contents</tag>') # Parsed using
|
36
|
+
REXML
|
32
37
|
|
33
|
-
|
34
|
-
|
35
|
-
MultiXml.parse('<tag>This is the contents</tag>') # Parsed using REXML
|
38
|
+
The `parser` setter takes either a symbol or a class (to allow for custom XML
|
39
|
+
parsers) that responds to `.parse` at the class level.
|
36
40
|
|
37
|
-
|
38
|
-
|
41
|
+
MultiXML tries to have intelligent defaulting. That is, if you have any of the
|
42
|
+
supported parsers already loaded, it will utilize them before attempting to
|
43
|
+
load any. When loading, libraries are ordered by speed: first Ox, then LibXML,
|
44
|
+
then Nokogiri, and finally REXML.
|
39
45
|
|
40
|
-
|
41
|
-
|
42
|
-
|
46
|
+
## <a name="contributing"></a>Contributing
|
47
|
+
In the spirit of [free software][free-sw] , **everyone** is encouraged to help
|
48
|
+
improve this project.
|
43
49
|
|
44
|
-
|
45
|
-
In the spirit of [free
|
46
|
-
software](http://www.fsf.org/licensing/essays/free-sw.html), **everyone** is
|
47
|
-
encouraged to help improve this project.
|
50
|
+
[free-sw]: http://www.fsf.org/licensing/essays/free-sw.html
|
48
51
|
|
49
52
|
Here are some ways *you* can contribute:
|
50
53
|
|
@@ -53,43 +56,52 @@ Here are some ways *you* can contribute:
|
|
53
56
|
* by suggesting new features
|
54
57
|
* by writing or editing documentation
|
55
58
|
* by writing specifications
|
56
|
-
* by writing code (**no patch is too small**: fix typos, add comments, clean up
|
59
|
+
* by writing code (**no patch is too small**: fix typos, add comments, clean up
|
60
|
+
inconsistent whitespace)
|
57
61
|
* by refactoring code
|
58
|
-
* by resolving [issues]
|
62
|
+
* by resolving [issues][]
|
59
63
|
* by reviewing patches
|
60
64
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
65
|
+
[issues]: https://github.com/sferik/multi_xml/issues
|
66
|
+
|
67
|
+
## <a name="issues"></a>Submitting an Issue
|
68
|
+
We use the [GitHub issue tracker][issues] to track bugs and features. Before
|
69
|
+
submitting a bug report or feature request, check to make sure it hasn't
|
70
|
+
already been submitted. You can indicate support for an existing issue by
|
71
|
+
voting it up. When submitting a bug report, please include a [Gist][] that
|
72
|
+
includes a stack trace and any details that may be necessary to reproduce the
|
73
|
+
bug, including your gem version, Ruby version, and operating system. Ideally, a
|
74
|
+
bug report should include a pull request with failing specs.
|
75
|
+
|
76
|
+
[gist]: https://gist.github.com/
|
77
|
+
|
78
|
+
## <a name="pulls"></a>Submitting a Pull Request
|
72
79
|
1. Fork the project.
|
73
80
|
2. Create a topic branch.
|
74
81
|
3. Implement your feature or bug fix.
|
75
82
|
4. Add documentation for your feature or bug fix.
|
76
|
-
5. Run
|
83
|
+
5. Run `bundle exec rake doc:yard`. If your changes are not 100% documented, go
|
84
|
+
back to step 4.
|
77
85
|
6. Add specs for your feature or bug fix.
|
78
|
-
7. Run
|
86
|
+
7. Run `bundle exec rake spec`. If your changes are not 100% covered, go back
|
87
|
+
to step 6.
|
79
88
|
8. Commit and push your changes.
|
80
|
-
9. Submit a pull request. Please do not include changes to the gemspec,
|
89
|
+
9. Submit a pull request. Please do not include changes to the gemspec,
|
90
|
+
version, or history file. (If you want to create your own version for some
|
91
|
+
reason, please do so in a separate commit.)
|
81
92
|
|
82
|
-
## <a name="
|
83
|
-
This library aims to support and is [tested
|
84
|
-
against](http://travis-ci.org/sferik/multi_xml) the following Ruby
|
93
|
+
## <a name="versions"></a>Supported Ruby Versions
|
94
|
+
This library aims to support and is [tested against][travis] the following Ruby
|
85
95
|
implementations:
|
86
96
|
|
87
97
|
* Ruby 1.8.7
|
88
|
-
* Ruby 1.9.1
|
89
98
|
* Ruby 1.9.2
|
90
|
-
*
|
91
|
-
* [
|
92
|
-
* [Ruby Enterprise Edition]
|
99
|
+
* Ruby 1.9.3
|
100
|
+
* [JRuby][]
|
101
|
+
* [Ruby Enterprise Edition][ree]
|
102
|
+
|
103
|
+
[jruby]: http://www.jruby.org/
|
104
|
+
[ree]: http://www.rubyenterpriseedition.com/
|
93
105
|
|
94
106
|
If something doesn't work on one of these interpreters, it should be considered
|
95
107
|
a bug.
|
@@ -105,9 +117,12 @@ implementation, you will be personally responsible for providing patches in a
|
|
105
117
|
timely fashion. If critical issues for a particular implementation exist at the
|
106
118
|
time of a major release, support for that Ruby version may be dropped.
|
107
119
|
|
108
|
-
## <a name="inspiration">Inspiration
|
109
|
-
MultiXML was inspired by [MultiJSON]
|
120
|
+
## <a name="inspiration"></a>Inspiration
|
121
|
+
MultiXML was inspired by [MultiJSON][].
|
122
|
+
|
123
|
+
[multijson]: https://github.com/intridea/multi_json/
|
124
|
+
|
125
|
+
## <a name="copyright"></a>Copyright
|
126
|
+
Copyright (c) 2010 Erik Michaels-Ober. See [LICENSE][] for details.
|
110
127
|
|
111
|
-
|
112
|
-
Copyright (c) 2010 Erik Michaels-Ober.
|
113
|
-
See [LICENSE](https://github.com/sferik/multi_xml/blob/master/LICENSE.md) for details.
|
128
|
+
[license]: https://github.com/sferik/multi_xml/blob/master/LICENSE.md
|
data/lib/multi_xml.rb
CHANGED
@@ -9,9 +9,9 @@ module MultiXml
|
|
9
9
|
class ParseError < StandardError; end
|
10
10
|
|
11
11
|
REQUIREMENT_MAP = [
|
12
|
+
['ox', :ox],
|
12
13
|
['libxml', :libxml],
|
13
14
|
['nokogiri', :nokogiri],
|
14
|
-
['ox', :ox],
|
15
15
|
['rexml/document', :rexml]
|
16
16
|
] unless defined?(REQUIREMENT_MAP)
|
17
17
|
|
@@ -54,9 +54,9 @@ module MultiXml
|
|
54
54
|
# if any parsers are already loaded, then checks
|
55
55
|
# to see which are installed if none are loaded.
|
56
56
|
def default_parser
|
57
|
+
return :ox if defined?(::Ox)
|
57
58
|
return :libxml if defined?(::LibXML)
|
58
59
|
return :nokogiri if defined?(::Nokogiri)
|
59
|
-
return :ox if defined?(::Ox)
|
60
60
|
|
61
61
|
REQUIREMENT_MAP.each do |(library, parser)|
|
62
62
|
begin
|
@@ -182,7 +182,21 @@ module MultiXml
|
|
182
182
|
case value
|
183
183
|
when Hash
|
184
184
|
if value['type'] == 'array'
|
185
|
-
|
185
|
+
|
186
|
+
# this commented-out suggestion helps to avoid the multiple attribute
|
187
|
+
# problem, but it breaks when there is only one item in the array.
|
188
|
+
#
|
189
|
+
# from: https://github.com/jnunemaker/httparty/issues/102
|
190
|
+
#
|
191
|
+
# _, entries = value.detect { |k, v| k != 'type' && v.is_a?(Array) }
|
192
|
+
|
193
|
+
# This attempt fails to consider the order that the detect method
|
194
|
+
# retrieves the entries.
|
195
|
+
#_, entries = value.detect {|key, _| key != 'type'}
|
196
|
+
|
197
|
+
# This approach ignores attribute entries that are not convertable
|
198
|
+
# to an Array which allows attributes to be ignored.
|
199
|
+
_, entries = value.detect {|k, v| k != 'type' && (v.is_a?(Array) || v.is_a?(Hash)) }
|
186
200
|
|
187
201
|
if entries.nil? || (entries.is_a?(String) && entries.strip.empty?)
|
188
202
|
[]
|
data/lib/multi_xml/parsers/ox.rb
CHANGED
data/lib/multi_xml/version.rb
CHANGED
data/multi_xml.gemspec
CHANGED
@@ -2,14 +2,11 @@
|
|
2
2
|
require File.expand_path('../lib/multi_xml/version', __FILE__)
|
3
3
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
|
-
gem.add_development_dependency '
|
6
|
-
gem.add_development_dependency '
|
7
|
-
gem.add_development_dependency '
|
8
|
-
gem.add_development_dependency '
|
9
|
-
gem.add_development_dependency '
|
10
|
-
gem.add_development_dependency 'rspec', '~> 2.6'
|
11
|
-
gem.add_development_dependency 'simplecov', '~> 0.4'
|
12
|
-
gem.add_development_dependency 'yard', '~> 0.7'
|
5
|
+
gem.add_development_dependency 'rake'
|
6
|
+
gem.add_development_dependency 'rdiscount'
|
7
|
+
gem.add_development_dependency 'rspec'
|
8
|
+
gem.add_development_dependency 'simplecov'
|
9
|
+
gem.add_development_dependency 'yard'
|
13
10
|
gem.author = "Erik Michaels-Ober"
|
14
11
|
gem.description = %q{A gem to provide swappable XML backends utilizing LibXML, Nokogiri, Ox, or REXML.}
|
15
12
|
gem.email = 'sferik@gmail.com'
|
@@ -294,7 +294,7 @@ shared_examples_for "a parser" do |parser|
|
|
294
294
|
|
295
295
|
context "with an attribute type=\"decimal\"" do
|
296
296
|
before do
|
297
|
-
@xml = '<tag type="decimal">3.
|
297
|
+
@xml = '<tag type="decimal">3.14159265358979</tag>'
|
298
298
|
end
|
299
299
|
|
300
300
|
it "should return a BigDecimal" do
|
@@ -302,7 +302,7 @@ shared_examples_for "a parser" do |parser|
|
|
302
302
|
end
|
303
303
|
|
304
304
|
it "should return the correct number" do
|
305
|
-
MultiXml.parse(@xml)['tag'].should == 3.
|
305
|
+
MultiXml.parse(@xml)['tag'].should == 3.14159265358979
|
306
306
|
end
|
307
307
|
end
|
308
308
|
|
@@ -392,6 +392,34 @@ shared_examples_for "a parser" do |parser|
|
|
392
392
|
end
|
393
393
|
end
|
394
394
|
|
395
|
+
context "with an attribute type=\"array\" in addition to other attributes" do
|
396
|
+
before do
|
397
|
+
@xml = '<users type="array" foo="bar"><user>Erik Michaels-Ober</user><user>Wynn Netherland</user></users>'
|
398
|
+
end
|
399
|
+
|
400
|
+
it "should return an Array" do
|
401
|
+
MultiXml.parse(@xml)['users'].should be_a(Array)
|
402
|
+
end
|
403
|
+
|
404
|
+
it "should return the correct array" do
|
405
|
+
MultiXml.parse(@xml)['users'].should == ["Erik Michaels-Ober", "Wynn Netherland"]
|
406
|
+
end
|
407
|
+
end
|
408
|
+
|
409
|
+
context "with an attribute type=\"array\" containing only one item" do
|
410
|
+
before do
|
411
|
+
@xml = '<users type="array"><user>Erik Michaels-Ober</user></users>'
|
412
|
+
end
|
413
|
+
|
414
|
+
it "should return an Array" do
|
415
|
+
MultiXml.parse(@xml)['users'].should be_a(Array)
|
416
|
+
end
|
417
|
+
|
418
|
+
it "should return the correct array" do
|
419
|
+
MultiXml.parse(@xml)['users'].should == ["Erik Michaels-Ober"]
|
420
|
+
end
|
421
|
+
end
|
422
|
+
|
395
423
|
%w(integer boolean date datetime yaml file).each do |type|
|
396
424
|
context "with an empty attribute type=\"#{type}\"" do
|
397
425
|
before do
|
metadata
CHANGED
@@ -1,151 +1,103 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: multi_xml
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.2
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 4
|
9
|
-
- 1
|
10
|
-
version: 0.4.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Erik Michaels-Ober
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
prerelease: false
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
12
|
+
date: 2012-03-12 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 2
|
31
|
-
- 0
|
32
|
-
version: "2.0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
33
22
|
type: :development
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: nokogiri
|
37
23
|
prerelease: false
|
38
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
25
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
version: "1.4"
|
48
|
-
type: :development
|
49
|
-
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: ox
|
52
|
-
prerelease: false
|
53
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rdiscount
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
54
33
|
none: false
|
55
|
-
requirements:
|
56
|
-
- -
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
segments:
|
60
|
-
- 1
|
61
|
-
- 3
|
62
|
-
version: "1.3"
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
63
38
|
type: :development
|
64
|
-
version_requirements: *id003
|
65
|
-
- !ruby/object:Gem::Dependency
|
66
|
-
name: rake
|
67
39
|
prerelease: false
|
68
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
69
41
|
none: false
|
70
|
-
requirements:
|
71
|
-
- -
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
version: "0.9"
|
78
|
-
type: :development
|
79
|
-
version_requirements: *id004
|
80
|
-
- !ruby/object:Gem::Dependency
|
81
|
-
name: rdiscount
|
82
|
-
prerelease: false
|
83
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rspec
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
84
49
|
none: false
|
85
|
-
requirements:
|
86
|
-
- -
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
|
89
|
-
segments:
|
90
|
-
- 1
|
91
|
-
- 6
|
92
|
-
version: "1.6"
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
93
54
|
type: :development
|
94
|
-
version_requirements: *id005
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: rspec
|
97
55
|
prerelease: false
|
98
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
57
|
none: false
|
100
|
-
requirements:
|
101
|
-
- -
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
|
104
|
-
|
105
|
-
- 2
|
106
|
-
- 6
|
107
|
-
version: "2.6"
|
108
|
-
type: :development
|
109
|
-
version_requirements: *id006
|
110
|
-
- !ruby/object:Gem::Dependency
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
111
63
|
name: simplecov
|
112
|
-
|
113
|
-
requirement: &id007 !ruby/object:Gem::Requirement
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
114
65
|
none: false
|
115
|
-
requirements:
|
116
|
-
- -
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
|
119
|
-
segments:
|
120
|
-
- 0
|
121
|
-
- 4
|
122
|
-
version: "0.4"
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
123
70
|
type: :development
|
124
|
-
version_requirements: *id007
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: yard
|
127
71
|
prerelease: false
|
128
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
129
73
|
none: false
|
130
|
-
requirements:
|
131
|
-
- -
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: yard
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
138
86
|
type: :development
|
139
|
-
|
140
|
-
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
description: A gem to provide swappable XML backends utilizing LibXML, Nokogiri, Ox,
|
95
|
+
or REXML.
|
141
96
|
email: sferik@gmail.com
|
142
97
|
executables: []
|
143
|
-
|
144
98
|
extensions: []
|
145
|
-
|
146
99
|
extra_rdoc_files: []
|
147
|
-
|
148
|
-
files:
|
100
|
+
files:
|
149
101
|
- .gemtest
|
150
102
|
- .gitignore
|
151
103
|
- .rspec
|
@@ -169,39 +121,31 @@ files:
|
|
169
121
|
- spec/speed.rb
|
170
122
|
homepage: https://github.com/sferik/multi_xml
|
171
123
|
licenses: []
|
172
|
-
|
173
124
|
post_install_message:
|
174
125
|
rdoc_options: []
|
175
|
-
|
176
|
-
require_paths:
|
126
|
+
require_paths:
|
177
127
|
- lib
|
178
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
179
129
|
none: false
|
180
|
-
requirements:
|
181
|
-
- -
|
182
|
-
- !ruby/object:Gem::Version
|
183
|
-
|
184
|
-
|
185
|
-
- 0
|
186
|
-
version: "0"
|
187
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
130
|
+
requirements:
|
131
|
+
- - ! '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
188
135
|
none: false
|
189
|
-
requirements:
|
190
|
-
- -
|
191
|
-
- !ruby/object:Gem::Version
|
192
|
-
|
193
|
-
segments:
|
194
|
-
- 0
|
195
|
-
version: "0"
|
136
|
+
requirements:
|
137
|
+
- - ! '>='
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
196
140
|
requirements: []
|
197
|
-
|
198
141
|
rubyforge_project:
|
199
|
-
rubygems_version: 1.8.
|
142
|
+
rubygems_version: 1.8.18
|
200
143
|
signing_key:
|
201
144
|
specification_version: 3
|
202
145
|
summary: A generic swappable back-end for XML parsing
|
203
|
-
test_files:
|
146
|
+
test_files:
|
204
147
|
- spec/helper.rb
|
205
148
|
- spec/multi_xml_spec.rb
|
206
149
|
- spec/parser_shared_example.rb
|
207
150
|
- spec/speed.rb
|
151
|
+
has_rdoc:
|