tag! (Markaby::Builder)

    # File lib/markaby/builder.rb, line 133
        def tag!(tag, *args, &block)
          ele_id = nil
          if @auto_validation and @tagset
              if !@tagset.tagset.has_key?(tag)
                  raise InvalidXhtmlError, "no element `#{tag}' for #{tagset.doctype}"
              elsif args.last.respond_to?(:to_hash)
                  attrs = args.last.to_hash
                  attrs.each do |k, v|
                      atname = k.to_s.downcase.intern
                      unless k =~ /:/ or @tagset.tagset[tag].include? atname
                          raise InvalidXhtmlError, "no attribute `#{k}' on #{tag} elements"
                      end
                      if atname == :id
                          ele_id = v.to_s
                          if @elements.has_key? ele_id
                              raise InvalidXhtmlError, "id `#{ele_id}' already used (id's must be unique)."
                          end
                      end
                  end
              end
          end
          if block
            str = capture &block
            block = proc { text(str) }
          end

          f = fragment { @builder.method_missing(tag, *args, &block) }
          @elements[ele_id] = f if ele_id
          f
        end