def method_missing(sym, *args, &block)
      if @_helper.respond_to?(sym, true)
        @_helper.send(sym, *args, &block)
      elsif @assigns.has_key?(sym)
        @assigns[sym]
      elsif @assigns.has_key?(stringy_key = sym.to_s)
        # Rails' ActionView assigns hash has string keys for
        # instance variables that are defined in the controller.
        @assigns[stringy_key]
      elsif instance_variables_for(self).include?(ivar = "@#{sym}".to_sym)
        instance_variable_get(ivar)
      elsif @_helper && instance_variables_for(@_helper).include?(ivar)
        @_helper.instance_variable_get(ivar)
      elsif instance_methods_for(::Builder::XmlMarkup).include?(sym)
        @builder.__send__(sym, *args, &block)
      elsif !@tagset
        tag!(sym, *args, &block)
      else
        super
      end
    end
def method_missing(sym, *args, &block)
      if @_helper.respond_to?(sym, true)
        @_helper.send(sym, *args, &block)
      elsif @assigns.has_key?(sym)
        @assigns[sym]
      elsif @assigns.has_key?(stringy_key = sym.to_s)
        # Rails' ActionView assigns hash has string keys for
        # instance variables that are defined in the controller.
        @assigns[stringy_key]
      elsif instance_variables_for(self).include?(ivar = "@#{sym}".to_sym)
        instance_variable_get(ivar)
      elsif @_helper && instance_variables_for(@_helper).include?(ivar)
        @_helper.instance_variable_get(ivar)
      elsif instance_methods_for(::Builder::XmlMarkup).include?(sym)
        @builder.__send__(sym, *args, &block)
      elsif !@tagset
        tag!(sym, *args, &block)
      else
        super
      end
    end
This method is used to intercept calls to helper methods and instance
 variables.  Here is the order of interception:

 * If +sym+ is a helper method, the helper method is called
   and output to the stream.
 * If +sym+ is a Builder::XmlMarkup method, it is passed on to the builder object.
 * If +sym+ is also the name of an instance variable, the
   value of the instance variable is returned.
 * If +sym+ has come this far and no +tagset+ is found, +sym+ and its arguments are passed to tag!
 * If a tagset is found, though, +NoMethodError+ is raised.

 method_missing used to be the lynchpin in Markaby, but it's no longer used to handle
 HTML tags.  See html_tag for that.