Class: Sass::Tree::DirectiveNode
- Defined in:
- lib/sass/tree/directive_node.rb
Overview
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 DirectiveNodes.
@import
is a bit of a weird case;
it becomes an ImportNode.
Constant Summary
Constants inherited from Node
Instance Attribute Summary collapse
-
#value ⇒ String
The text of the directive,
@
and all.
Attributes inherited from Node
#children, #filename, #has_children, #line, #options
Instance Method Summary collapse
-
#_to_s(tabs) ⇒ String
protected
Computes the CSS for the directive.
-
#initialize(value) ⇒ DirectiveNode
constructor
A new instance of DirectiveNode.
- #to_src(tabs, opts, fmt) protected
Methods inherited from Node
#<<, #==, #_around_dump, #_cssize, #_perform, #balance, #check_child!, #children_to_src, #cssize, #cssize!, #dasherize, #do_extend, #each, #invalid_child?, #invisible?, #perform, #perform!, #perform_children, #run_interp, #selector_to_sass, #selector_to_scss, #selector_to_src, #semi, #style, #to_s, #to_sass, #to_scss
Constructor Details
#initialize(value) ⇒ DirectiveNode
Returns a new instance of DirectiveNode.
18 19 20 21 |
# File 'lib/sass/tree/directive_node.rb', line 18
def initialize(value)
@value = value
super()
end
|
Instance Attribute Details
#value ⇒ String
The text of the directive, @
and all.
15 16 17 |
# File 'lib/sass/tree/directive_node.rb', line 15
def value
@value
end
|
Instance Method Details
#_to_s(tabs) ⇒ String (protected)
Computes the CSS for the directive.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/sass/tree/directive_node.rb', line 36
def _to_s(tabs)
return value + ";" unless has_children
return value + " {}" if children.empty?
result = if style == :compressed
"#{value}{"
else
"#{' ' * (tabs - 1)}#{value} {" + (style == :compact ? ' ' : "\n")
end
was_prop = false
first = true
children.each do |child|
next if child.invisible?
if style == :compact
if child.is_a?(PropNode)
result << "#{child.to_s(first || was_prop ? 1 : tabs + 1)} "
else
if was_prop
result[-1] = "\n"
end
rendered = child.to_s(tabs + 1).dup
rendered = rendered.lstrip if first
result << rendered.rstrip + "\n"
end
was_prop = child.is_a?(PropNode)
first = false
elsif style == :compressed
result << (was_prop ? ";#{child.to_s(1)}" : child.to_s(1))
was_prop = child.is_a?(PropNode)
else
result << child.to_s(tabs + 1) + "\n"
end
end
result.rstrip + if style == :compressed
"}"
else
(style == :expanded ? "\n" : " ") + "}\n"
end
end
|
#to_src(tabs, opts, fmt) (protected)
26 27 28 29 30 |
# File 'lib/sass/tree/directive_node.rb', line 26
def to_src(tabs, opts, fmt)
res = "#{' ' * tabs}#{value}"
return res + "#{semi fmt}\n" unless has_children
res + children_to_src(tabs, opts, fmt) + "\n"
end
|