class Sass::Tree::RuleNode

def to_s(tabs, super_rules = nil)

Raises:
  • (Sass::SyntaxError) - if the rule has no parents but uses `&`

Returns:
  • (String) - The resulting CSS

Parameters:
  • super_rules (Array>) -- The rules for the parent node
  • tabs (Fixnum) -- The level of indentation for the CSS
def to_s(tabs, super_rules = nil)
  resolved_rules = resolve_parent_refs(super_rules)
  properties = []
  sub_rules = []
  rule_separator = style == :compressed ? ',' : ', '
  line_separator = [:nested, :expanded].include?(style) ? ",\n" : rule_separator
  rule_indent = '  ' * (tabs - 1)
  per_rule_indent, total_indent = [:nested, :expanded].include?(style) ? [rule_indent, ''] : ['', rule_indent]
  total_rule = total_indent + resolved_rules.map do |line|
    per_rule_indent + line.join(rule_separator)
  end.join(line_separator)
  children.each do |child|
    next if child.invisible?
    if child.is_a? RuleNode
      sub_rules << child
    else
      properties << child
    end
  end
  to_return = ''
  if !properties.empty?
    old_spaces = '  ' * (tabs - 1)
    spaces = '  ' * tabs
    if @options[:line_comments] && style != :compressed
      to_return << "#{old_spaces}/* line #{line}"
      if filename
        relative_filename = if @options[:css_filename]
          begin
            Pathname.new(filename).relative_path_from(  
              Pathname.new(File.dirname(@options[:css_filename]))).to_s
          rescue ArgumentError
            nil
          end
        end
        relative_filename ||= filename
        to_return << ", #{relative_filename}"
      end
      to_return << " */\n"
    end
    if style == :compact
      properties = properties.map { |a| a.to_s(1) }.select{|a| a && a.length > 0}.join(' ')
      to_return << "#{total_rule} { #{properties} }\n"
    elsif style == :compressed
      properties = properties.map { |a| a.to_s(1) }.select{|a| a && a.length > 0}.join(';')
      to_return << "#{total_rule}{#{properties}}"
    else
      properties = properties.map { |a| a.to_s(tabs + 1) }.select{|a| a && a.length > 0}.join("\n")
      end_props = (style == :expanded ? "\n" + old_spaces : ' ')
      to_return << "#{total_rule} {\n#{properties}#{end_props}}\n"
    end
  end
  tabs += 1 unless properties.empty? || style != :nested
  sub_rules.each do |sub|
    to_return << sub.to_s(tabs, resolved_rules)
  end
  to_return
end