Class: Sass::Tree::AtRootNode
- Inherits:
- Node
- Object
- Node
- Sass::Tree::AtRootNode
- Defined in:
- /Users/ceppstei/Projects/sass-lang/.sass/lib/sass/tree/at_root_node.rb
Overview
A dynamic node representing an @at-root
directive.
An @at-root
directive with a selector is converted to an AtRootNode containing a RuleNode at parse time.
Instance Attribute Summary (collapse)
- - (Boolean) group_end
Whether the last child of this node should be considered the end of a group.
- - (Array<String, Sass::Script::Tree::Node>) query
The query for this node (e.g.
(without: media)
), interspersed with Script::Tree::Nodes representing#{}
-interpolation. - - (Symbol) resolved_type
The resolved type of this directive.
- - (Array<String>) resolved_value
The resolved value of this directive – a list of directives to either include or exclude.
- - (Number) tabs
The number of additional tabs that the contents of this node should be indented.
Attributes inherited from Node
#children, #filename, #has_children, #line, #options, #source_range
Instance Method Summary (collapse)
- - (Boolean) bubbles?
- - (Boolean) exclude?(directive)
Returns whether or not the given directive is excluded by this node.
- - (Boolean) exclude_node?(node)
Returns whether the given node is excluded by this node.
- - (AtRootNode) initialize(query = nil) constructor
A new instance of AtRootNode.
Methods inherited from Node
#<<, #==, #balance, #css, #css_with_sourcemap, #deep_copy, #each, #inspect, #invisible?, #style, #to_sass, #to_scss
Constructor Details
- (AtRootNode) initialize(query = nil)
Returns a new instance of AtRootNode
45 46 47 48 49 | # File '/Users/ceppstei/Projects/sass-lang/.sass/lib/sass/tree/at_root_node.rb', line 45
def initialize(query = nil)
super()
@query = Sass::Util.strip_string_array(Sass::Util.merge_adjacent_strings(query)) if query
@tabs = 0
end |
Instance Attribute Details
- (Boolean) group_end
Whether the last child of this node should be considered the end of a group.
43 44 45 | # File '/Users/ceppstei/Projects/sass-lang/.sass/lib/sass/tree/at_root_node.rb', line 43
def group_end
@group_end
end |
- (Array<String, Sass::Script::Tree::Node>) query
The query for this node (e.g. (without: media)
), interspersed with Script::Tree::Nodes representing #{}
-interpolation. Any adjacent strings will be merged together.
This will be nil if the directive didn’t have a query. In this case, will automatically be set to :without
and will automatically be set to ["rule"]
.
20 21 22 | # File '/Users/ceppstei/Projects/sass-lang/.sass/lib/sass/tree/at_root_node.rb', line 20
def query
@query
end |
- (Symbol) resolved_type
The resolved type of this directive. :with
or :without
.
25 26 27 | # File '/Users/ceppstei/Projects/sass-lang/.sass/lib/sass/tree/at_root_node.rb', line 25
def resolved_type
@resolved_type
end |
- (Array<String>) resolved_value
The resolved value of this directive – a list of directives to either include or exclude.
31 32 33 | # File '/Users/ceppstei/Projects/sass-lang/.sass/lib/sass/tree/at_root_node.rb', line 31
def resolved_value
@resolved_value
end |
- (Number) tabs
The number of additional tabs that the contents of this node should be indented.
37 38 39 | # File '/Users/ceppstei/Projects/sass-lang/.sass/lib/sass/tree/at_root_node.rb', line 37
def tabs
@tabs
end |
Instance Method Details
- (Boolean) bubbles?
78 79 80 | # File '/Users/ceppstei/Projects/sass-lang/.sass/lib/sass/tree/at_root_node.rb', line 78
def bubbles?
true
end |
- (Boolean) exclude?(directive)
Returns whether or not the given directive is excluded by this node. directive
may be “rule”, which indicates whether normal CSS rules should be excluded.
57 58 59 60 61 62 63 64 65 | # File '/Users/ceppstei/Projects/sass-lang/.sass/lib/sass/tree/at_root_node.rb', line 57
def exclude?(directive)
if resolved_type == :with
return false if resolved_value.include?('all')
!resolved_value.include?(directive)
else # resolved_type == :without
return true if resolved_value.include?('all')
resolved_value.include?(directive)
end
end |
- (Boolean) exclude_node?(node)
Returns whether the given node is excluded by this node.
71 72 73 74 75 | # File '/Users/ceppstei/Projects/sass-lang/.sass/lib/sass/tree/at_root_node.rb', line 71
def exclude_node?(node)
return exclude?(node.name.gsub(/^@/, '')) if node.is_a?(Sass::Tree::DirectiveNode)
return exclude?('keyframes') if node.is_a?(Sass::Tree::KeyframeRuleNode)
exclude?('rule') && node.is_a?(Sass::Tree::RuleNode)
end |