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:
Yorick Peterse 2015-05-07 01:02:59 +02:00
parent b5e63dc50e
commit b9145d83f8
1 changed files with 13 additions and 11 deletions

View File

@ -320,21 +320,23 @@ module Oga
#
def available_namespaces
# HTML(5) completely ignores namespaces
if html?
return @available_namespaces ||= {}
elsif !@available_namespaces
merged = namespaces.dup
node = parent
unless @available_namespaces
if html?
@available_namespaces = {}
else
merged = namespaces.dup
node = parent
while node && node.respond_to?(:namespaces)
node.namespaces.each do |prefix, ns|
merged[prefix] = ns unless merged[prefix]
while node && node.respond_to?(:namespaces)
node.namespaces.each do |prefix, ns|
merged[prefix] = ns unless merged[prefix]
end
node = node.parent
end
node = node.parent
@available_namespaces = merged
end
@available_namespaces = merged
end
return @available_namespaces