class Sass::Tree::RuleNode
def to_s(tabs, super_rules = nil)
-
(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