nori 2.1.0 → 2.2.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.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +5 -0
- data/lib/nori.rb +5 -4
- data/lib/nori/version.rb +1 -1
- data/lib/nori/xml_utility_node.rb +1 -0
- data/spec/nori/api_spec.rb +28 -0
- metadata +9 -23
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 3e19155f25d041f2c528280d6985a66128069105
|
4
|
+
data.tar.gz: a0446834296e76ef56b850fda6d40f455c10bf3f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: acdcd81ae0503f8efb3bfbba9975c7c686b3913ca570f7e3b037bd8625517e8be1918e1943223681563222ca6621db655d91423d8f80cd9ad17d979e8d4cf33e
|
7
|
+
data.tar.gz: 3e898eedb82cc8d3fe3041f69c3e2879522c9112bddd508da6c704374f652e3ccf05cdab511fa0d2ff881155cad6aee82eacac909af2f058a9ea503dc48b02f4
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
# 2.2.0 (2013-04-25)
|
2
|
+
|
3
|
+
* Feature: [#42](https://github.com/savonrb/nori/pull/42) adds the `:delete_namespace_attributes`
|
4
|
+
option to remove namespace attributes like `xmlns:*` or `xsi:*`.
|
5
|
+
|
1
6
|
# 2.1.0 (2013-04-21)
|
2
7
|
|
3
8
|
* Feature: Added `Nori.hash_key` and `Nori#find` to work with Hash keys generated by Nori.
|
data/lib/nori.rb
CHANGED
@@ -15,10 +15,11 @@ class Nori
|
|
15
15
|
|
16
16
|
def initialize(options = {})
|
17
17
|
defaults = {
|
18
|
-
:strip_namespaces
|
19
|
-
:
|
20
|
-
:
|
21
|
-
:
|
18
|
+
:strip_namespaces => false,
|
19
|
+
:delete_namespace_attributes => false,
|
20
|
+
:convert_tags_to => nil,
|
21
|
+
:advanced_typecasting => true,
|
22
|
+
:parser => :nokogiri
|
22
23
|
}
|
23
24
|
|
24
25
|
validate_options! defaults.keys, options.keys
|
data/lib/nori/version.rb
CHANGED
@@ -101,6 +101,7 @@ class Nori
|
|
101
101
|
@nil_element = attributes.delete(key) == "true"
|
102
102
|
attributes.delete("xmlns:#{result[2]}") if result[1]
|
103
103
|
end
|
104
|
+
attributes.delete(key) if @options[:delete_namespace_attributes] && key[/^(xmlns|xsi)/]
|
104
105
|
end
|
105
106
|
@attributes = undasherize_keys(attributes)
|
106
107
|
@children = []
|
data/spec/nori/api_spec.rb
CHANGED
@@ -126,6 +126,34 @@ describe Nori do
|
|
126
126
|
end
|
127
127
|
end
|
128
128
|
|
129
|
+
context "#parse without :delete_namespace_attributes" do
|
130
|
+
it "can be changed to not delete xmlns attributes" do
|
131
|
+
xml = '<userResponse xmlns="http://schema.company.com/some/path/to/namespace/v1"><accountStatus>active</accountStatus></userResponse>'
|
132
|
+
hash = nori(:delete_namespace_attributes => false).parse(xml)
|
133
|
+
hash.should == {"userResponse" => {"@xmlns" => "http://schema.company.com/some/path/to/namespace/v1", "accountStatus" => "active"}}
|
134
|
+
end
|
135
|
+
|
136
|
+
it "can be changed to not delete xsi attributes" do
|
137
|
+
xml = '<userResponse xsi="abc:myType"><accountStatus>active</accountStatus></userResponse>'
|
138
|
+
hash = nori(:delete_namespace_attributes => false).parse(xml)
|
139
|
+
hash.should == {"userResponse" => {"@xsi" => "abc:myType", "accountStatus" => "active"}}
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
context "#parse with :delete_namespace_attributes" do
|
144
|
+
it "can be changed to delete xmlns attributes" do
|
145
|
+
xml = '<userResponse xmlns="http://schema.company.com/some/path/to/namespace/v1"><accountStatus>active</accountStatus></userResponse>'
|
146
|
+
hash = nori(:delete_namespace_attributes => true).parse(xml)
|
147
|
+
hash.should == {"userResponse" => {"accountStatus" => "active"}}
|
148
|
+
end
|
149
|
+
|
150
|
+
it "can be changed to delete xsi attributes" do
|
151
|
+
xml = '<userResponse xsi="abc:myType"><accountStatus>active</accountStatus></userResponse>'
|
152
|
+
hash = nori(:delete_namespace_attributes => true).parse(xml)
|
153
|
+
hash.should == {"userResponse" => {"accountStatus" => "active"}}
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
129
157
|
def nori(options = {})
|
130
158
|
Nori.new(options)
|
131
159
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nori
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
5
|
-
prerelease:
|
4
|
+
version: 2.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Daniel Harrington
|
@@ -11,12 +10,11 @@ authors:
|
|
11
10
|
autorequire:
|
12
11
|
bindir: bin
|
13
12
|
cert_chain: []
|
14
|
-
date: 2013-04-
|
13
|
+
date: 2013-04-25 00:00:00.000000000 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: rake
|
18
17
|
requirement: !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
18
|
requirements:
|
21
19
|
- - ~>
|
22
20
|
- !ruby/object:Gem::Version
|
@@ -24,7 +22,6 @@ dependencies:
|
|
24
22
|
type: :development
|
25
23
|
prerelease: false
|
26
24
|
version_requirements: !ruby/object:Gem::Requirement
|
27
|
-
none: false
|
28
25
|
requirements:
|
29
26
|
- - ~>
|
30
27
|
- !ruby/object:Gem::Version
|
@@ -32,23 +29,20 @@ dependencies:
|
|
32
29
|
- !ruby/object:Gem::Dependency
|
33
30
|
name: nokogiri
|
34
31
|
requirement: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
32
|
requirements:
|
37
|
-
- -
|
33
|
+
- - '>='
|
38
34
|
- !ruby/object:Gem::Version
|
39
35
|
version: 1.4.0
|
40
36
|
type: :development
|
41
37
|
prerelease: false
|
42
38
|
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
none: false
|
44
39
|
requirements:
|
45
|
-
- -
|
40
|
+
- - '>='
|
46
41
|
- !ruby/object:Gem::Version
|
47
42
|
version: 1.4.0
|
48
43
|
- !ruby/object:Gem::Dependency
|
49
44
|
name: rspec
|
50
45
|
requirement: !ruby/object:Gem::Requirement
|
51
|
-
none: false
|
52
46
|
requirements:
|
53
47
|
- - ~>
|
54
48
|
- !ruby/object:Gem::Version
|
@@ -56,7 +50,6 @@ dependencies:
|
|
56
50
|
type: :development
|
57
51
|
prerelease: false
|
58
52
|
version_requirements: !ruby/object:Gem::Requirement
|
59
|
-
none: false
|
60
53
|
requirements:
|
61
54
|
- - ~>
|
62
55
|
- !ruby/object:Gem::Version
|
@@ -97,33 +90,26 @@ files:
|
|
97
90
|
- spec/spec_helper.rb
|
98
91
|
homepage: https://github.com/savonrb/nori
|
99
92
|
licenses: []
|
93
|
+
metadata: {}
|
100
94
|
post_install_message:
|
101
95
|
rdoc_options: []
|
102
96
|
require_paths:
|
103
97
|
- lib
|
104
98
|
required_ruby_version: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
99
|
requirements:
|
107
|
-
- -
|
100
|
+
- - '>='
|
108
101
|
- !ruby/object:Gem::Version
|
109
102
|
version: '0'
|
110
|
-
segments:
|
111
|
-
- 0
|
112
|
-
hash: 2288822480346077713
|
113
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
104
|
requirements:
|
116
|
-
- -
|
105
|
+
- - '>='
|
117
106
|
- !ruby/object:Gem::Version
|
118
107
|
version: '0'
|
119
|
-
segments:
|
120
|
-
- 0
|
121
|
-
hash: 2288822480346077713
|
122
108
|
requirements: []
|
123
109
|
rubyforge_project: nori
|
124
|
-
rubygems_version:
|
110
|
+
rubygems_version: 2.0.3
|
125
111
|
signing_key:
|
126
|
-
specification_version:
|
112
|
+
specification_version: 4
|
127
113
|
summary: XML to Hash translator
|
128
114
|
test_files:
|
129
115
|
- spec/nori/api_spec.rb
|