Google

def []=( name, value ) if value.nil? attr = get_attribute name delete attr return end value = Attribute.new(name, value) unless value.kind_of? Attribute value.element = @element old_attr = fetch value.name, nil if old_attr.nil? store(value.name, value) elsif old_attr.kind_of? Hash old_attr[value.prefix] = value elsif old_attr.prefix != value.prefix store value.name, { old_attr.prefix => old_attr, value.prefix => value } else store value.name, value end return @element end