Less html? calls in Element#available_namespaces
Previously it would always call the "html?" method, even if the available namespaces were already set.
This commit is contained in:
parent
b5e63dc50e
commit
b9145d83f8
|
@ -320,21 +320,23 @@ module Oga
|
||||||
#
|
#
|
||||||
def available_namespaces
|
def available_namespaces
|
||||||
# HTML(5) completely ignores namespaces
|
# HTML(5) completely ignores namespaces
|
||||||
if html?
|
unless @available_namespaces
|
||||||
return @available_namespaces ||= {}
|
if html?
|
||||||
elsif !@available_namespaces
|
@available_namespaces = {}
|
||||||
merged = namespaces.dup
|
else
|
||||||
node = parent
|
merged = namespaces.dup
|
||||||
|
node = parent
|
||||||
|
|
||||||
while node && node.respond_to?(:namespaces)
|
while node && node.respond_to?(:namespaces)
|
||||||
node.namespaces.each do |prefix, ns|
|
node.namespaces.each do |prefix, ns|
|
||||||
merged[prefix] = ns unless merged[prefix]
|
merged[prefix] = ns unless merged[prefix]
|
||||||
|
end
|
||||||
|
|
||||||
|
node = node.parent
|
||||||
end
|
end
|
||||||
|
|
||||||
node = node.parent
|
@available_namespaces = merged
|
||||||
end
|
end
|
||||||
|
|
||||||
@available_namespaces = merged
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return @available_namespaces
|
return @available_namespaces
|
||||||
|
|
Loading…
Reference in New Issue