class Nokogiri::XML::Builder

def method_missing(method, *args, &block) # :nodoc:

:nodoc:
def method_missing(method, *args, &block) # :nodoc:
  if @context&.respond_to?(method)
    @context.send(method, *args, &block)
  else
    node = @doc.create_element(method.to_s.sub(/[_!]$/, ""), *args) do |n|
      # Set up the namespace
      if @ns.is_a?(Nokogiri::XML::Namespace)
        n.namespace = @ns
        @ns = nil
      end
    end
    if @ns.is_a?(Hash)
      node.namespace = node.namespace_definitions.find { |x| x.prefix == @ns[:pending] }
      if node.namespace.nil?
        raise ArgumentError, "Namespace #{@ns[:pending]} has not been defined"
      end
      @ns = nil
    end
    insert(node, &block)
  end
end