All pastes #2120635 Raw Edit

butts

public text v1 · immutable
#2120635 ·published 2012-02-22 05:32 UTC
rendered paste body
import cgi
     
     
class Tag(object):
    def __init__(self, name):
        super(Tag, self).__init__()
        self.n = name
        self.attrList = []
        self.classString = ""
        self.classList = []
        self.renderString = ""
        self.elementList = []
                  
    def addAttr(key, value):
        key = cgi.escape(key)
        value = cgi.escape(value)
        self.attrList.append((key, value))
        return self
       
    def addClass(self, name):
        name = cgi.escape(name)
        self.classList.append((self, name))
        return self
       
    def attrs(self):
        self.renderString = ""
        self.classString = ""
        if len(self.classList) > 0:
            for i in range(len(self.attrList)):
                if self.attrList[i][0] == "class":
                self.attrList.pop(i)
            for elt in self.classList:
                self.classString+= str(elt) + " "
            self.attrList.insert(1,("class",self.classString.rstrip()))
            for (key, value) in self.attrList:
                self.renderString += key
                self.renderString += "="
                self.renderString += "\""
                self.renderString += value
                self.renderString += "\" "
   
    def makeTag(self, contents):
        if contents = "":
            return "<"+name+self.attrs+()+"/>"
        else:
            if not self.attrList == []:
                return "<"+self.n+" "+self.attrs().rstrip()+">"+contents+"</"+self.n+">"
        else:
            return "<"+self.n+">"+contents+"</"+self.n+">"

    def __str__(self):
        return makeTag(self)
           
    def __repr__(self):
        return str(self)