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 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