moxml 0.5.2 → 0.5.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 566f12c7bcda29e079d0fd5b496a6becff643b9c15afd328d5f99fb7ef70d35c
4
- data.tar.gz: a4d7858218db7d38300b963b11d5e40b5aec176d2072a177c4e5448f839b8671
3
+ metadata.gz: 6cadb7739071fa9a823f6a08fe5daa33c2313d22e4c4454aa491e975f62da5ee
4
+ data.tar.gz: b6682343586e2bf873c9067fccc68f03f2c67c8b10eafc418fcad6663320f2f2
5
5
  SHA512:
6
- metadata.gz: 45cf69a5c753718d3bcef44580ef2e8e0dcfa536033537602952e8cbeb73e8bb59e68ad365fdc72c6b7422a998c50e623a1f7b894ed5e7da3cd8e129ff40c703
7
- data.tar.gz: 0fd18d4891bd29ce56ab1174aa494f8dddc251d298067a0290bf84df41f6854d61bdeedf6e9fd813c32669a9a550419865a637633ddd6e558e84ff0d9f6eca2e
6
+ metadata.gz: 67da3161b095e47aafe6d7e7327c2125a4458a9ef557c41c5f9d6465fccb01374d29c409178910b39426cf0cf7a42140d6858d4177c3f63b529690f397303796
7
+ data.tar.gz: c88f55e02c026e18f4c1a25578d9e27094835288e6ccc0dccff40633ff31029975125d9fcfb51ae5353f00ad5fa54fd8bef135d9e44c64da794b45513f728903
@@ -39,11 +39,15 @@ module Moxml
39
39
  return nil if uri.nil?
40
40
 
41
41
  element.attributes.find do |attr|
42
- local_name(attr.name) == local && attribute_uri(element, attr) == uri
42
+ # attr.name allocates on several adapters (native string,
43
+ # plus leptris' force_encoding dup) — read it once per probe
44
+ attr_name = attr.name
45
+ local_name(attr_name) == local && attribute_uri(element, attr, attr_name) == uri
43
46
  end
44
47
  else
45
48
  element.attributes.find do |attr|
46
- local_name(attr.name) == name && attribute_uri(element, attr).nil?
49
+ attr_name = attr.name
50
+ local_name(attr_name) == name && attribute_uri(element, attr, attr_name).nil?
47
51
  end
48
52
  end
49
53
  end
@@ -170,11 +174,11 @@ module Moxml
170
174
  # adapters that report a prefix without resolving it (rexml/ox for
171
175
  # the prebound xml prefix) and adapters that expose neither
172
176
  # namespace nor separate prefix (leptris qualified names).
173
- def attribute_uri(element, attr)
177
+ def attribute_uri(element, attr, attr_name = nil)
174
178
  ns = attr.namespace
175
179
  return ns.uri unless ns.nil? || ns.uri.to_s.empty?
176
180
 
177
- prefix = ns&.prefix || prefix_part(attr.name)
181
+ prefix = ns&.prefix || prefix_part(attr_name || attr.name)
178
182
  return nil if prefix.nil? || prefix.empty?
179
183
  return XML_NAMESPACE_URI if prefix == "xml"
180
184
 
data/lib/moxml/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Moxml
4
- VERSION = "0.5.2"
4
+ VERSION = "0.5.3"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moxml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.