def to_s(which_media = :all)
out = String.new
styles_by_media_types = {}
each_selector(which_media) do |selectors, declarations, specificity, media_types|
media_types.each do |media_type|
styles_by_media_types[media_type] ||= []
styles_by_media_types[media_type] << [selectors, declarations]
end
end
styles_by_media_types.each_pair do |media_type, media_styles|
media_block = (media_type != :all)
out << "@media #{media_type} {\n" if media_block
media_styles.each do |media_style|
if media_block
out << " #{media_style[0]} {\n #{media_style[1]}\n }\n"
else
out << "#{media_style[0]} {\n#{media_style[1]}\n}\n"
end
end
out << "}\n" if media_block
end
out
end