Class: Sass::Tree::ExtendNode
Overview
A static node reprenting an @extend directive.
Instance Method Summary
-
- cssize(extends, parent)
Registers this extension in the
extendssubset map. - - (ExtendNode) initialize(selector) constructor A new instance of ExtendNode.
- - perform!(environment) protected Runs SassScript interpolation in the selector, and then parses the result into a Sass::Selector::CommaSequence.
- - to_src(tabs, opts, fmt) protected
Methods inherited from Node
#<<, #==, #_cssize, #_perform, #_to_s, #balance, #check_child!, #children_to_src, #cssize!, #dasherize, #do_extend, #each, #invalid_child?, #invisible?, #perform, #perform_children, #run_interp, #selector_to_sass, #selector_to_scss, #selector_to_src, #semi, #style, #to_s, #to_sass, #to_scss
Constructor Details
- (ExtendNode) initialize(selector)
A new instance of ExtendNode
12 13 14 15 |
# File '/var/www/sass-pages/.haml/lib/sass/tree/extend_node.rb', line 12
def initialize(selector)
@selector = selector
super()
end
|
Instance Method Details
- cssize(extends, parent)
Registers this extension in the extends subset map.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File '/var/www/sass-pages/.haml/lib/sass/tree/extend_node.rb', line 23
def cssize(extends, parent)
@resolved_selector.members.each do |seq|
if seq.members.size > 1
raise Sass::SyntaxError.new("Can't extend #{seq.to_a.join}: can't extend nested selectors")
end
sseq = seq.members.first
if !sseq.is_a?(Sass::Selector::SimpleSequence)
raise Sass::SyntaxError.new("Can't extend #{seq.to_a.join}: invalid selector")
end
sel = sseq.members
parent.resolved_rules.members.each do |seq|
if !seq.members.last.is_a?(Sass::Selector::SimpleSequence)
raise Sass::SyntaxError.new("#{seq} can't extend: invalid selector")
end
extends[sel] = seq
end
end
[]
end
|
- perform!(environment) (protected)
Runs SassScript interpolation in the selector, and then parses the result into a Sass::Selector::CommaSequence.
59 60 61 62 63 |
# File '/var/www/sass-pages/.haml/lib/sass/tree/extend_node.rb', line 59
def perform!(environment)
@resolved_selector = Sass::SCSS::CssParser.new(run_interp(@selector, environment), self.line).
parse_selector(self.filename)
super
end
|
- to_src(tabs, opts, fmt) (protected)
50 51 52 |
# File '/var/www/sass-pages/.haml/lib/sass/tree/extend_node.rb', line 50
def to_src(tabs, opts, fmt)
"#{' ' * tabs}@extend #{selector_to_src(@selector, tabs, opts, fmt).lstrip}#{semi fmt}\n"
end
|