| Class | Sass::Tree::DirectiveNode |
| In: |
lib/sass/css.rb
lib/sass/tree/directive_node.rb |
| Parent: | Object |
A static node representing an unproccessed Sass `@`-directive. Directives known to Sass, like `@for` and `@debug`, are handled by their own nodes; only CSS directives like `@media` and `@font-face` become {DirectiveNode}s.
`@import` is a bit of a weird case; it becomes an {ImportNode}.
@see Sass::Tree
| value | [RW] |
The text of the directive, `@` and all.
@return [String] |
@param value [String] See \{value}
# File lib/sass/tree/directive_node.rb, line 18
18: def initialize(value)
19: @value = value
20: super()
21: end
Computes the CSS for the directive.
@param tabs [Fixnum] The level of indentation for the CSS @return [String] The resulting CSS
# File lib/sass/tree/directive_node.rb, line 27
27: def to_s(tabs)
28: if children.empty?
29: value + ";"
30: else
31: result = if style == :compressed
32: "#{value}{"
33: else
34: "#{' ' * (tabs - 1)}#{value} {" + (style == :compact ? ' ' : "\n")
35: end
36: was_prop = false
37: first = true
38: children.each do |child|
39: next if child.invisible?
40: if style == :compact
41: if child.is_a?(PropNode)
42: result << "#{child.to_s(first || was_prop ? 1 : tabs + 1)} "
43: else
44: if was_prop
45: result[-1] = "\n"
46: end
47: rendered = child.to_s(tabs + 1)
48: rendered.lstrip! if first
49: result << rendered
50: end
51: was_prop = child.is_a?(PropNode)
52: first = false
53: elsif style == :compressed
54: result << (was_prop ? ";#{child.to_s(1)}" : child.to_s(1))
55: was_prop = child.is_a?(PropNode)
56: else
57: result << child.to_s(tabs + 1) + "\n"
58: end
59: end
60: result.rstrip + if style == :compressed
61: "}"
62: else
63: (style == :expanded ? "\n" : " ") + "}\n"
64: end
65: end
66: end
@see Node#to_sass
# File lib/sass/css.rb, line 46
46: def to_sass(tabs, opts = {})
47: "#{' ' * tabs}#{value}#{children.map {|c| c.to_sass(tabs + 1, opts)}}\n"
48: end