xml-simple 1.1.4 → 1.1.5
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.
- checksums.yaml +4 -4
- data/lib/xmlsimple.rb +16 -9
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2673ebe343b5f04ba6870687867461f21ade3b9
|
4
|
+
data.tar.gz: 1e0f37f2fc6d72365f9b0b36a18849cb17eba27e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ac3b4367a95d29ccecad806a0484658cdb36a87edc71bb2dec1ca90c0f29ae63f0fcac1cb6f3c87d5503b50224728e2a2506d0d516ddda46b639091a5d37180
|
7
|
+
data.tar.gz: ed5a721d68e38fb6551d1a1c99c3c66c8094b37752f7cfe371a1b92867dcb37f309dc7a7fa3d2e985f03dd5583869bb3d36b27c42b45eca04c66b3251c62b19a
|
data/lib/xmlsimple.rb
CHANGED
@@ -11,7 +11,7 @@ require 'stringio'
|
|
11
11
|
class XmlSimple
|
12
12
|
include REXML
|
13
13
|
|
14
|
-
@@VERSION = '1.1.
|
14
|
+
@@VERSION = '1.1.5'
|
15
15
|
|
16
16
|
# A simple cache for XML documents that were already transformed
|
17
17
|
# by xml_in.
|
@@ -121,7 +121,7 @@ class XmlSimple
|
|
121
121
|
# Create a "global" cache.
|
122
122
|
@@cache = Cache.new
|
123
123
|
|
124
|
-
# Creates and
|
124
|
+
# Creates and initializes a new XmlSimple object.
|
125
125
|
#
|
126
126
|
# defaults::
|
127
127
|
# Default values for options.
|
@@ -264,10 +264,10 @@ class XmlSimple
|
|
264
264
|
# Declare options that are valid for xml_in and xml_out.
|
265
265
|
KNOWN_OPTIONS = {
|
266
266
|
'in' => %w(
|
267
|
-
keyattr keeproot forcecontent contentkey noattr
|
268
|
-
|
269
|
-
|
270
|
-
|
267
|
+
keyattr keeproot forcecontent contentkey noattr searchpath
|
268
|
+
forcearray suppressempty anonymoustag cache grouptags
|
269
|
+
normalisespace normalizespace variables varattr keytosymbol
|
270
|
+
attrtosymbol attrprefix conversions
|
271
271
|
),
|
272
272
|
'out' => %w(
|
273
273
|
keyattr keeproot contentkey noattr rootname
|
@@ -285,11 +285,12 @@ class XmlSimple
|
|
285
285
|
DEF_FORCE_ARRAY = true
|
286
286
|
DEF_INDENTATION = ' '
|
287
287
|
DEF_KEY_TO_SYMBOL = false
|
288
|
+
DEF_ATTR_TO_SYMBOL = false
|
288
289
|
|
289
290
|
# Normalizes option names in a hash, i.e., turns all
|
290
291
|
# characters to lower case and removes all underscores.
|
291
|
-
# Additionally, this method checks
|
292
|
-
# was used and raises an according exception.
|
292
|
+
# Additionally, this method checks if an unknown option
|
293
|
+
# was used, and raises an according exception.
|
293
294
|
#
|
294
295
|
# options::
|
295
296
|
# Hash to be normalized.
|
@@ -301,7 +302,7 @@ class XmlSimple
|
|
301
302
|
options.each { |key, value|
|
302
303
|
lkey = key.to_s.downcase.gsub(/_/, '')
|
303
304
|
if !known_options.member?(lkey)
|
304
|
-
raise ArgumentError, "
|
305
|
+
raise ArgumentError, "Unrecognized option: #{lkey}."
|
305
306
|
end
|
306
307
|
result[lkey] = value
|
307
308
|
}
|
@@ -353,6 +354,8 @@ class XmlSimple
|
|
353
354
|
|
354
355
|
@options['keytosymbol'] = DEF_KEY_TO_SYMBOL unless @options.has_key?('keytosymbol')
|
355
356
|
|
357
|
+
@options['attrtosymbol'] = DEF_ATTR_TO_SYMBOL unless @options.has_key?('attrtosymbol')
|
358
|
+
|
356
359
|
if @options.has_key?('contentkey')
|
357
360
|
if @options['contentkey'] =~ /^-(.*)$/
|
358
361
|
@options['contentkey'] = $1
|
@@ -710,9 +713,13 @@ class XmlSimple
|
|
710
713
|
attributes = {}
|
711
714
|
if @options['attrprefix']
|
712
715
|
node.attributes.each { |n,v| attributes["@" + n] = v }
|
716
|
+
elsif @options.has_key?('attrtosymbol') and @options['attrtosymbol'] == true
|
717
|
+
#patch for converting attribute names to symbols
|
718
|
+
node.attributes.each { |n,v| attributes[n.to_sym] = v }
|
713
719
|
else
|
714
720
|
node.attributes.each { |n,v| attributes[n] = v }
|
715
721
|
end
|
722
|
+
|
716
723
|
attributes
|
717
724
|
end
|
718
725
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xml-simple
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maik Schmidt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email: contact@maik-schmidt.de
|
@@ -27,17 +27,17 @@ require_paths:
|
|
27
27
|
- lib
|
28
28
|
required_ruby_version: !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|
30
|
-
- -
|
30
|
+
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '0'
|
33
33
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
34
|
requirements:
|
35
|
-
- -
|
35
|
+
- - ">="
|
36
36
|
- !ruby/object:Gem::Version
|
37
37
|
version: '0'
|
38
38
|
requirements: []
|
39
39
|
rubyforge_project: xml-simple
|
40
|
-
rubygems_version: 2.
|
40
|
+
rubygems_version: 2.4.6
|
41
41
|
signing_key:
|
42
42
|
specification_version: 4
|
43
43
|
summary: A simple API for XML processing.
|