def combine_attributes_and_style_declarations
if @document && @document.css_parser
tag_style = @document.css_parser.find_by_selector(element.name)
id_style = @document.css_parser.find_by_selector("##{element.attributes["id"]}") if element.attributes["id"]
if classes = element.attributes["class"]
class_styles = classes.strip.split(/\s+/).collect do |class_name|
@document.css_parser.find_by_selector(".#{class_name}")
end
end
element_style = element.attributes['style']
style = [tag_style, class_styles, id_style, element_style].flatten.collect do |s|
s.nil? || s.strip == "" ? "" : "#{s}#{";" unless s.match(/;\s*\z/)}"
end.join
else
style = element.attributes['style'] || ""
end
@attributes = parse_css_declarations(style)
element.attributes.each {|n,v| @attributes[n] = v unless @attributes[n]}
end