multi_xml 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of multi_xml might be problematic. Click here for more details.

data/.rspec CHANGED
@@ -1,3 +1,2 @@
1
1
  --color
2
- --format=nested
3
- --backtrace
2
+ --order random
@@ -1,7 +1,6 @@
1
1
  rvm:
2
2
  - 1.8.7
3
3
  - 1.9.2
4
+ - 1.9.3
4
5
  - jruby
5
- - rbx
6
- - rbx-2.0
7
6
  - ree
data/Gemfile CHANGED
@@ -1,9 +1,9 @@
1
- source 'http://rubygems.org'
1
+ source 'https://rubygems.org'
2
2
 
3
3
  group :development, :test do
4
- gem 'libxml-ruby', '~> 2.0', :require => nil, :platforms => :mri
5
- gem 'nokogiri', '~> 1.4', :require => nil
6
- gem 'ox', '~> 1.3', :require => nil
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 [![Build Status](https://secure.travis-ci.org/sferik/multi_xml.png?branch=master)][travis] [![Dependency Status](https://gemnasium.com/sferik/multi_xml.png?travis)][gemnasium]
2
2
  A generic swappable back-end for XML parsing
3
3
 
4
- ## <a name="installation">Installation</a>
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</a>
8
- [http://rdoc.info/gems/multi_xml](http://rdoc.info/gems/multi_xml)
10
+ ## <a name="documentation"></a>Documentation
11
+ [http://rdoc.info/gems/multi_xml][documentation]
9
12
 
10
- ## <a name="ci">Continuous Integration</a>
11
- [![Build Status](https://secure.travis-ci.org/sferik/multi_xml.png)](http://travis-ci.org/sferik/multi_xml)
13
+ [documentation]: http://rdoc.info/gems/multi_xml
12
14
 
13
- ## <a name="examples">Usage Examples</a>
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, <tt>multi_xml</tt> is a general-purpose swappable XML backend
17
- library. You use it like so:
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 = :libxml
22
- MultiXml.parser = MultiXml::Parsers::Libxml # Same as above
23
- MultiXml.parse('<tag>This is the contents</tag>') # Parsed using LibXML
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.parser = MultiXml::Parsers::Nokogiri # Same as above
27
- MultiXml.parse('<tag>This is the contents</tag>') # Parsed using Nokogiri
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 = :ox
30
- MultiXml.parser = MultiXml::Parsers::Ox # Same as above
31
- MultiXml.parse('<tag>This is the contents</tag>') # Parsed using Ox
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
- MultiXml.parser = :rexml
34
- MultiXml.parser = MultiXml::Parsers::Rexml # Same as above
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
- The <tt>parser</tt> setter takes either a symbol or a class (to allow for custom XML parsers) that
38
- responds to <tt>.parse</tt> at the class level.
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
- MultiXML tries to have intelligent defaulting. That is, if you have any of the supported parsers
41
- already loaded, it will utilize them before attempting to load any. When loading, libraries are
42
- ordered by speed: first LibXML, then Nokogiri, then Ox, then REXML.
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
- ## <a name="contributing">Contributing</a>
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 inconsistent whitespace)
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](https://github.com/sferik/multi_xml/issues)
62
+ * by resolving [issues][]
59
63
  * by reviewing patches
60
64
 
61
- ## <a name="issues">Submitting an Issue</a>
62
- We use the [GitHub issue tracker](https://github.com/sferik/multi_xml/issues)
63
- to track bugs and features. Before submitting a bug report or feature request,
64
- check to make sure it hasn't already been submitted. You can indicate support
65
- for an existing issuse by voting it up. When submitting a bug report, please
66
- include a [Gist](https://gist.github.com/) that includes a stack trace and any
67
- details that may be necessary to reproduce the bug, including your gem version,
68
- Ruby version, and operating system. Ideally, a bug report should include a pull
69
- request with failing specs.
70
-
71
- ## <a name="pulls">Submitting a Pull Request</a>
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 <tt>bundle exec rake doc:yard</tt>. If your changes are not 100% documented, go back to step 4.
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 <tt>bundle exec rake spec</tt>. If your changes are not 100% covered, go back to step 6.
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, version, or history file. (If you want to create your own version for some reason, please do so in a separate commit.)
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="rubies">Supported Rubies</a>
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
- * [JRuby](http://www.jruby.org/)
91
- * [Rubinius](http://rubini.us/)
92
- * [Ruby Enterprise Edition](http://www.rubyenterpriseedition.com/)
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</a>
109
- MultiXML was inspired by [MultiJSON](https://github.com/intridea/multi_json/).
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
- ## <a name="copyright">Copyright</a>
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
@@ -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
- _, entries = value.detect {|key, _| key != 'type'}
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
  []
@@ -23,7 +23,7 @@ module MultiXml
23
23
  module Ox #:nodoc:
24
24
 
25
25
  extend self
26
-
26
+
27
27
  def parse_error
28
28
  Exception
29
29
  end
@@ -40,7 +40,7 @@ module MultiXml
40
40
  def initialize()
41
41
  @stack = []
42
42
  end
43
-
43
+
44
44
  def doc
45
45
  @stack[0]
46
46
  end
@@ -1,3 +1,3 @@
1
1
  module MultiXml
2
- VERSION = "0.4.1"
2
+ VERSION = "0.4.2"
3
3
  end
@@ -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 'libxml-ruby', '~> 2.0' unless RUBY_PLATFORM == 'java'
6
- gem.add_development_dependency 'nokogiri', '~> 1.4'
7
- gem.add_development_dependency 'ox', '~> 1.3'
8
- gem.add_development_dependency 'rake', '~> 0.9'
9
- gem.add_development_dependency 'rdiscount', '~> 1.6'
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.14159265358979323846264338327950288419716939937510</tag>'
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.14159265358979323846264338327950288419716939937510
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
- hash: 13
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
- date: 2011-09-26 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: libxml-ruby
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
- hash: 3
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
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
39
25
  none: false
40
- requirements:
41
- - - ~>
42
- - !ruby/object:Gem::Version
43
- hash: 7
44
- segments:
45
- - 1
46
- - 4
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
- hash: 9
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
- requirement: &id004 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
69
41
  none: false
70
- requirements:
71
- - - ~>
72
- - !ruby/object:Gem::Version
73
- hash: 25
74
- segments:
75
- - 0
76
- - 9
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
- hash: 3
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
- requirement: &id006 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
99
57
  none: false
100
- requirements:
101
- - - ~>
102
- - !ruby/object:Gem::Version
103
- hash: 15
104
- segments:
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
- prerelease: false
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
- hash: 3
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
- requirement: &id008 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
129
73
  none: false
130
- requirements:
131
- - - ~>
132
- - !ruby/object:Gem::Version
133
- hash: 5
134
- segments:
135
- - 0
136
- - 7
137
- version: "0.7"
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
- version_requirements: *id008
140
- description: A gem to provide swappable XML backends utilizing LibXML, Nokogiri, Ox, or REXML.
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
- hash: 3
184
- segments:
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
- hash: 3
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.10
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: