##
# HtmlAttributes is a set of attributes to be attached to an
# HtmlElement.
class Borges::HtmlAttributes
##
# Create an empty attribute set.
def initialize
@attributes = ""
end
##
# Set +attr+ to true. THIS WILL NOT RETRIEVE THE VALUE OF AN ATTRIBUTE.
def [](attr)
@attributes << " #{attr}=\"#{attr}\""
end
##
# Set +attr+ to +value+.
def []=(attr, value)
@attributes << " #{attr}=\"#{value}\""
end
##
# Set an attribute to a value (or true). #method_missing
# handles one or two arguments, setting the value to true if
# given one argument, and to the value if given two.
# #method_missing also strips an '=' on the message sent.
def method_missing(attr, value = nil)
attr = attr.to_s
attr = attr.chop! if attr =~ /=$/
if value.nil? then
@attributes << " #{attr}=\"#{attr}\""
else
@attributes << " #{attr}=\"#{value}\""
end
end
def to_s
@attributes
end
end # class Borges::HtmlAttributes