All pastes #2120631 Raw Edit

butts

public text v1 · immutable
#2120631 ·published 2012-02-22 05:25 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)