def method_missing(sym, *args, &block)
if @helpers.respond_to?(sym, true) && !self.class.ignored_helpers.include?(sym)
r = @helpers.send(sym, *args, &block)
if @output_helpers and r.respond_to? :to_str
fragment { @builder << r }
else
r
end
elsif ::Builder::XmlMarkup.instance_methods.include?(sym.to_s)
@builder.__send__(sym, *args, &block)
elsif instance_variables.include?("@#{sym}")
instance_variable_get("@#{sym}")
elsif @tagset.nil?
tag!(sym, *args, &block)
else
raise NoMethodError, "no such method `#{sym}'"
end
end