niceogiri 1.0.2 → 1.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/lib/niceogiri/version.rb +1 -1
- data/lib/niceogiri/xml/node.rb +10 -4
- data/niceogiri.gemspec +4 -4
- data/spec/niceogiri/xml/node_spec.rb +18 -1
- metadata +19 -19
data/lib/niceogiri/version.rb
CHANGED
data/lib/niceogiri/xml/node.rb
CHANGED
@@ -32,8 +32,8 @@ module Niceogiri
|
|
32
32
|
#
|
33
33
|
# @param [#to_sym] attr_name the name of the attribute
|
34
34
|
# @param [#to_s] value the value to set the attribute to
|
35
|
-
def write_attr(attr_name, value)
|
36
|
-
self[attr_name.to_sym] = value
|
35
|
+
def write_attr(attr_name, value, to_call = nil)
|
36
|
+
self[attr_name.to_sym] = value && to_call ? value.__send__(to_call) : value
|
37
37
|
end
|
38
38
|
|
39
39
|
# Helper method to read the content of a node
|
@@ -133,9 +133,15 @@ module Niceogiri
|
|
133
133
|
# @param [XML::Node] node the node to inherit
|
134
134
|
# @return [self]
|
135
135
|
def inherit(node)
|
136
|
-
|
136
|
+
self.namespace = node.namespace.href if node.namespace
|
137
137
|
inherit_attrs node.attributes
|
138
|
-
node.children.each
|
138
|
+
node.children.each do |c|
|
139
|
+
self << (n = c.dup)
|
140
|
+
if c.respond_to?(:namespace) && c.namespace
|
141
|
+
ns = n.add_namespace c.namespace.prefix, c.namespace.href
|
142
|
+
n.namespace = ns
|
143
|
+
end
|
144
|
+
end
|
139
145
|
self
|
140
146
|
end
|
141
147
|
|
data/niceogiri.gemspec
CHANGED
@@ -19,11 +19,11 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.rdoc_options = %w{--charset=UTF-8}
|
20
20
|
s.extra_rdoc_files = %w{LICENSE README.md}
|
21
21
|
|
22
|
-
s.add_dependency "nokogiri", ["~> 1.
|
22
|
+
s.add_dependency "nokogiri", ["~> 1.5"]
|
23
23
|
|
24
|
-
s.add_development_dependency "rspec", ["
|
25
|
-
s.add_development_dependency "bundler", ["
|
26
|
-
s.add_development_dependency "yard", ["
|
24
|
+
s.add_development_dependency "rspec", ["~> 2.7"]
|
25
|
+
s.add_development_dependency "bundler", ["~> 1.0"]
|
26
|
+
s.add_development_dependency "yard", ["~> 0.6"]
|
27
27
|
s.add_development_dependency "rake"
|
28
28
|
s.add_development_dependency "guard-rspec"
|
29
29
|
end
|
@@ -46,6 +46,14 @@ module Niceogiri
|
|
46
46
|
subject[:bar].should == 'baz'
|
47
47
|
end
|
48
48
|
|
49
|
+
it 'provides an attribute writer with conversion' do
|
50
|
+
subject[:bar].should be_nil
|
51
|
+
subject.write_attr :bar, '1.0', :to_i
|
52
|
+
subject[:bar].should == '1'
|
53
|
+
subject.write_attr :bar, nil, :to_i
|
54
|
+
subject[:bar].should == nil
|
55
|
+
end
|
56
|
+
|
49
57
|
it 'provides a content reader' do
|
50
58
|
foo = Node.new 'foo'
|
51
59
|
foo << (bar = Node.new('bar', foo.document))
|
@@ -139,12 +147,21 @@ module Niceogiri
|
|
139
147
|
n2.to_s.should == n.to_s
|
140
148
|
end
|
141
149
|
|
142
|
-
it 'holds on to
|
150
|
+
it 'holds on to namespace prefixes when inheriting content' do
|
143
151
|
n = Nokogiri::XML.parse('<message><bar:foo xmlns:bar="http://bar.com"></message>').root
|
144
152
|
n2 = Node.new('message').inherit n
|
145
153
|
n2.to_s.should == n.to_s
|
146
154
|
end
|
147
155
|
|
156
|
+
it 'holds on to namespaces when inheriting content' do
|
157
|
+
n = Nokogiri::XML.parse('<message xmlns="foobar"><body xmlns="barfoo"/></message>').root
|
158
|
+
n2 = Node.new('message').inherit n
|
159
|
+
n2.to_s.should == n.to_s
|
160
|
+
n2.namespace.href.should be == 'foobar'
|
161
|
+
body = n2.children.first
|
162
|
+
body.namespace.href.should be == 'barfoo'
|
163
|
+
end
|
164
|
+
|
148
165
|
it 'holds on to namespaces without a prefix when inheriting content' do
|
149
166
|
n = Nokogiri::XML.parse('<message><bar:foo xmlns="http://bar.com"></message>').root
|
150
167
|
n2 = Node.new('message').inherit n
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: niceogiri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-11-14 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: nokogiri
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '1.
|
22
|
+
version: '1.5'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -27,55 +27,55 @@ dependencies:
|
|
27
27
|
requirements:
|
28
28
|
- - ~>
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: '1.
|
30
|
+
version: '1.5'
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
32
|
name: rspec
|
33
33
|
requirement: !ruby/object:Gem::Requirement
|
34
34
|
none: false
|
35
35
|
requirements:
|
36
|
-
- -
|
36
|
+
- - ~>
|
37
37
|
- !ruby/object:Gem::Version
|
38
|
-
version: 2.7
|
38
|
+
version: '2.7'
|
39
39
|
type: :development
|
40
40
|
prerelease: false
|
41
41
|
version_requirements: !ruby/object:Gem::Requirement
|
42
42
|
none: false
|
43
43
|
requirements:
|
44
|
-
- -
|
44
|
+
- - ~>
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 2.7
|
46
|
+
version: '2.7'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: bundler
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.0
|
54
|
+
version: '1.0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
57
|
version_requirements: !ruby/object:Gem::Requirement
|
58
58
|
none: false
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - ~>
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 1.0
|
62
|
+
version: '1.0'
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
64
|
name: yard
|
65
65
|
requirement: !ruby/object:Gem::Requirement
|
66
66
|
none: false
|
67
67
|
requirements:
|
68
|
-
- -
|
68
|
+
- - ~>
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 0.6
|
70
|
+
version: '0.6'
|
71
71
|
type: :development
|
72
72
|
prerelease: false
|
73
73
|
version_requirements: !ruby/object:Gem::Requirement
|
74
74
|
none: false
|
75
75
|
requirements:
|
76
|
-
- -
|
76
|
+
- - ~>
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
version: 0.6
|
78
|
+
version: '0.6'
|
79
79
|
- !ruby/object:Gem::Dependency
|
80
80
|
name: rake
|
81
81
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,7 +148,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
148
148
|
version: '0'
|
149
149
|
segments:
|
150
150
|
- 0
|
151
|
-
hash:
|
151
|
+
hash: 1354346198489803166
|
152
152
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
153
|
none: false
|
154
154
|
requirements:
|
@@ -157,10 +157,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
157
|
version: '0'
|
158
158
|
segments:
|
159
159
|
- 0
|
160
|
-
hash:
|
160
|
+
hash: 1354346198489803166
|
161
161
|
requirements: []
|
162
162
|
rubyforge_project:
|
163
|
-
rubygems_version: 1.8.
|
163
|
+
rubygems_version: 1.8.24
|
164
164
|
signing_key:
|
165
165
|
specification_version: 3
|
166
166
|
summary: Some additional niceties atop Nokogiri
|