xml-smart 0.3.15 → 0.3.16

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6f5bdaa76b04eb422f59648a1387a106751fbd78
4
- data.tar.gz: c782e442fc1e57a81a6e516bf5d73ba29652c24f
3
+ metadata.gz: 6d05696d426518de0bfd9786c6409993a8bda165
4
+ data.tar.gz: 9be92beef9e765e91b72b8afffda5f79cf694122
5
5
  SHA512:
6
- metadata.gz: 76bdff5b7e342a74293bbd7c799907cd027abaf222b06e2eb70f800457ae6d956401655218bec49f680adf9c5e29014c8113a12bea3cae7f7767628aeb83b23f
7
- data.tar.gz: f9f5c313c4d6afdae809cae090ac81ac392ad5f0397569024f9c543e2c6f097aeb5d570a7ee51c40030a0c34574cd9d35329032b5ee72af543224213a9410776
6
+ metadata.gz: 88aee8b8411d3b91a40373e5befe6897446f88960f0aa0453969f142f761a3ac41fe224729a003154b66b7f2b1a432025f703902e057b0dcc74a930b4bbad03d
7
+ data.tar.gz: 4570b4d8d349747b80be0e66a56c50904316786749ba57b782cb11da919447e6ffc3d713e42eee59d9d4c1299bb14dbecde067ef9213760156f5f6c494313b20
data/lib/xml/smart.rb CHANGED
@@ -102,7 +102,7 @@ module Nokogiri
102
102
  name = path + name if name !~ /^(https?:|ftp:)/
103
103
  content = open(name,{ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE}).read
104
104
  insert = begin
105
- Nokogiri::XML::parse(content){|config| config.noblanks.noent.nsclean.strict }.root
105
+ Nokogiri::XML::parse(content).root # {|config| config.noblanks.noent.strict }.root
106
106
  rescue
107
107
  content
108
108
  end
@@ -117,6 +117,17 @@ module Nokogiri
117
117
  end
118
118
  end
119
119
 
120
+ alias __replace replace
121
+ def replace(node_or_tags)
122
+ x = __replace(node_or_tags)
123
+ x.xpath('.|.//*|.//@*').each do |rns|
124
+ x.namespace_scopes.each do |nss|
125
+ rns.namespace = nss if rns.namespace && rns.namespace.href == nss.href
126
+ end
127
+ end
128
+ x
129
+ end
130
+
120
131
  def xpath_experimental
121
132
  return NodeSet.new(document) unless document
122
133
  @nsc ||= 0
@@ -25,13 +25,13 @@ module XML
25
25
  if @element.document.user_custom_namespace_prefixes[pfx] == v
26
26
  ns = @element.document.user_custom_namespace_prefixes[pfx]
27
27
  end
28
- end
28
+ end
29
29
  end
30
- if ns.nil?
30
+ if ns.nil?
31
31
  if @element.document.custom_namespace_prefixes.has_key?(pfx)
32
32
  ns = @element.document.custom_namespace_prefixes[pfx]
33
33
  else
34
- raise Error, 'No valid namespace'
34
+ raise Error, 'No valid namespace'
35
35
  end
36
36
  end
37
37
  end
@@ -86,10 +86,10 @@ module XML
86
86
  if attrs[1] == XML::Smart::COPY
87
87
  tnos = nos.map{|e|e.dup}
88
88
  nos = Nokogiri::XML::NodeSet.new(nos.first.document,tnos)
89
- end
89
+ end
90
90
  return [Nokogiri::XML::NodeSet.new(nos.first.document,tnos), true]
91
91
  return [nos, !same]
92
- else
92
+ else
93
93
  return [nos, false]
94
94
  end
95
95
  elsif attrs.length == 2 && attrs[0].is_a?(String) && attrs[1].is_a?(String) && attrs[0][0] == '?'
@@ -105,7 +105,7 @@ module XML
105
105
  if update
106
106
  @element.document.custom_namespace_prefixes_update
107
107
  @element.document.ns_update
108
- end
108
+ end
109
109
  res
110
110
  end
111
111
  def append(*attrs)
@@ -121,7 +121,7 @@ module XML
121
121
  if update
122
122
  @element.document.custom_namespace_prefixes_update
123
123
  @element.document.ns_update
124
- end
124
+ end
125
125
  res
126
126
  end
127
127
  def add_after(*attrs)
@@ -130,11 +130,16 @@ module XML
130
130
  if update
131
131
  @element.document.custom_namespace_prefixes_update
132
132
  @element.document.ns_update
133
- end
133
+ end
134
134
  res
135
135
  end
136
136
 
137
- def dump; @element.to_s; end
137
+ def dump
138
+ doc = Nokogiri::XML::Document.new
139
+ doc.root = @element
140
+ doc.root.to_s
141
+ end
142
+
138
143
  def to_s; @element.content; end
139
144
  def to_i; @element.content.to_i; end
140
145
  def to_f; @element.content.to_f; end
@@ -149,7 +154,7 @@ module XML
149
154
  n
150
155
  else
151
156
  return
152
- end
157
+ end
153
158
  tmp = @element.document.custom_namespace_prefixes[n] || @element.document.user_custom_namespace_prefixes[n]
154
159
  unless tmp.nil?
155
160
  @element.namespace_scopes.each do |nss|
data/test/EXAMPLE.xml CHANGED
@@ -1,6 +1,6 @@
1
1
  <test xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xml:lang="de">
2
2
  <names>
3
- <name team="0" a="3">2015-07-23 21:37:19 +0200</name>
3
+ <name team="0" a="3">2015-07-27 20:41:24 +0200</name>
4
4
  <name team="1">Jürgen</name>
5
5
  <name team="1">Michel</name>
6
6
  <name team="1">Raphi</name>
data/test/concurrent.xml CHANGED
@@ -1,7 +1 @@
1
- <solutions>
2
- <solution matnr="9906264" name="mangler" secid="1" when="2015-07-23T21:37:19+02:00" assessment="16">
3
- <question block="1" question="2"/>
4
- <question block="2" question="4"/>
5
- <question block="3" question="6"/>
6
- </solution>
7
- </solutions>
1
+ <solutions><solution matnr="9906264" name="mangler" secid="1" assessment="16"><question block="1" question="2"/><question block="2" question="4"/><question block="3" question="6"/></solution></solutions>
data/test/tc_basic.rb CHANGED
@@ -82,7 +82,7 @@ class TestBasic < MiniTest::Test
82
82
 
83
83
  doc = XML::Smart.open(::File.dirname(__FILE__) + "/EXAMPLE-NS.xml")
84
84
  assert(doc.namespaces == {"xmlns0"=>"http://example.org", "xmlns1"=>"http://example1.org", "soap"=>"http://schemas.xmlsoap.org/wsdl/soap/"})
85
- assert(doc.find('//xmlns0:names/xmlns0:name')[2].dump == "<name team=\"1\">Michel</name>")
85
+ assert(doc.find('//xmlns0:names/xmlns0:name')[2].dump == "<name xmlns=\"http://example.org\" team=\"1\">Michel</name>")
86
86
 
87
87
  doc = XML::Smart.open(::File.dirname(__FILE__) + "/EXAMPLE-NSE.xml")
88
88
  node = doc.find("//soap:hallo")[0]
@@ -94,10 +94,10 @@ class TestBasic < MiniTest::Test
94
94
  assert(node.qname.href == "http://schemas.xmlsoap.org/wsdl/soap/")
95
95
 
96
96
  node.namespace = 'x'
97
- assert(node.dump == "<test:hallo/>")
97
+ assert(node.dump == "<test:hallo xmlns:test=\"http://xxx.org\"/>")
98
98
  assert(doc.root.namespaces.length == 3)
99
99
  node.namespace = 'xmlns'
100
- assert(node.dump == "<hallo/>");
100
+ assert(node.dump == "<hallo xmlns=\"http://default.org\"/>")
101
101
 
102
102
  node = doc.find("/xmlns:test")[0]
103
103
  assert(node.qname.prefix == "")
data/test/tc_copy.rb CHANGED
@@ -32,7 +32,9 @@ class TestCopy < Minitest::Test
32
32
  assert(doc.find("/test/*[7]").first.dump == "<name team=\"2\">Kathrin <b>Fiedler</b></name>")
33
33
  assert(doc.find("/test/*[8]").first.dump == "<name team=\"2\">Kathrin <b>Fiedler</b></name>")
34
34
  assert(doc.find("/test/*[9]").first.dump == "<node id=\"1\">\n <text xmlns=\"http://aaa\">I am a text</text>\n</node>")
35
- assert(doc.find("/test/*[10]").first.dump == "<soap:node id=\"2\"/>")
35
+
36
+
37
+ assert(doc.find("/test/*[10]").first.dump == "<soap:node xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\" id=\"2\"/>")
36
38
 
37
39
  assert(soc.root.dump == "<root xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\">\n <node id=\"1\">\n <text xmlns=\"http://aaa\">I am a text</text>\n </node>\n <soap:node id=\"2\"/>\n</root>")
38
40
  end
@@ -27,7 +27,7 @@ class TestNamespaceDefault < Minitest::Test
27
27
  n = nsnode.add('x:test') rescue success = false
28
28
  assert(success)
29
29
 
30
- assert(nsnode.dump == "<hallo>\n <soap:test/>\n</hallo>")
30
+ assert(nsnode.dump == "<hallo xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\">\n <soap:test/>\n</hallo>")
31
31
 
32
32
  assert(nsnode.qname.name == "hallo")
33
33
  assert(nsnode.qname.to_s == "hallo")
data/xml-smart.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "xml-smart"
3
- s.version = "0.3.15"
3
+ s.version = "0.3.16"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3"
6
6
  s.summary = "An xml library that doesn't suck - since 2004."
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xml-smart
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.15
4
+ version: 0.3.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juergen eTM Mangler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-23 00:00:00.000000000 Z
11
+ date: 2015-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri