From b9145d83f8ac97d813cabc3837488a0d732893fd Mon Sep 17 00:00:00 2001 From: Yorick Peterse Date: Thu, 7 May 2015 01:02:59 +0200 Subject: [PATCH] Less html? calls in Element#available_namespaces Previously it would always call the "html?" method, even if the available namespaces were already set. --- lib/oga/xml/element.rb | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/oga/xml/element.rb b/lib/oga/xml/element.rb index f07a551..79da3d7 100644 --- a/lib/oga/xml/element.rb +++ b/lib/oga/xml/element.rb @@ -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