def openTag(*args)
context = nil
if args.first.is_a? Hash
extraAttributes = args.first
elsif args.last.is_a?(Iowa::Context)
context = args.pop
extraAttributes = Hash[*args]
else
extraAttributes = Hash[*args]
end
newAttributes = @attributes.dup.update(extraAttributes)
if context
@bindings.each do |k,v|
next if k.to_s == 'action' or k.to_s == 'item' or k.to_s == 'list' or k.to_s == 'key'
newAttributes[k] = context.getBinding(v)
end
end
tag = "<#{tagName}"
newAttributes.each do |key, value|
if value
value = CGI::escapeHTML(value.to_s)
tag += " #{key}=\"#{value}\""
else
tag += " #{key}"
end
end
tag += ">"
end