16: def to_s(tabs, parent_name = nil)
17: if value[-1] == ?;
18: raise Sass::SyntaxError.new("Invalid attribute: #{declaration.dump} (This isn't CSS!).", @line)
19: end
20: real_name = name
21: real_name = "#{parent_name}-#{real_name}" if parent_name
22:
23: if value.empty? && children.empty?
24: raise Sass::SyntaxError.new("Invalid attribute: #{declaration.dump}.", @line)
25: end
26:
27: join_string = case @style
28: when :compact; ' '
29: when :compressed; ''
30: else "\n"
31: end
32: spaces = ' ' * (tabs - 1)
33: to_return = ''
34: if !value.empty?
35: to_return << "#{spaces}#{real_name}:#{@style == :compressed ? '' : ' '}#{value};#{join_string}"
36: end
37:
38: children.each do |kid|
39: to_return << "#{kid.to_s(tabs, real_name)}" << join_string
40: end
41:
42: (@style == :compressed && parent_name) ? to_return : to_return[0...-1]
43: end