Class: Sass::Stack
- Inherits:
- Object
- Object
- Sass::Stack
- Defined in:
- /Users/ceppstei/Projects/sass-lang/.sass/lib/sass/stack.rb
Overview
A class representing the stack when compiling a Sass file.
Defined Under Namespace
Classes: Frame
Instance Attribute Summary (collapse)
- - (Array<Frame>) frames readonly
The stack frames.
Instance Method Summary (collapse)
- - (Stack) initialize constructor
A new instance of Stack.
- - to_s
- - with_base(filename, line) { ... }
Pushes a base frame onto the stack.
- - with_import(filename, line) { ... }
Pushes an import frame onto the stack.
- - with_mixin(filename, line, name) { ... }
Pushes a mixin frame onto the stack.
Constructor Details
- (Stack) initialize
Returns a new instance of Stack
69 70 71 | # File '/Users/ceppstei/Projects/sass-lang/.sass/lib/sass/stack.rb', line 69
def initialize
@frames = []
end |
Instance Attribute Details
- (Array<Frame>) frames (readonly)
The stack frames. The last frame is the most deeply-nested.
67 68 69 | # File '/Users/ceppstei/Projects/sass-lang/.sass/lib/sass/stack.rb', line 67
def frames
@frames
end |
Instance Method Details
- to_s
101 102 103 104 105 106 107 108 | # File '/Users/ceppstei/Projects/sass-lang/.sass/lib/sass/stack.rb', line 101
def to_s
Sass::Util.enum_with_index(Sass::Util.enum_cons(frames.reverse + [nil], 2)).
map do |(frame, caller), i|
"#{i == 0 ? 'on' : 'from'} line #{frame.line}" +
" of #{frame.filename || 'an unknown file'}" +
(caller && caller.name ? ", in `#{caller.name}'" : "")
end.join("\n")
end |
- with_base(filename, line) { ... }
Pushes a base frame onto the stack.
78 79 80 | # File '/Users/ceppstei/Projects/sass-lang/.sass/lib/sass/stack.rb', line 78
def with_base(filename, line)
with_frame(filename, line, :base) {yield}
end |
- with_import(filename, line) { ... }
Pushes an import frame onto the stack.
87 88 89 | # File '/Users/ceppstei/Projects/sass-lang/.sass/lib/sass/stack.rb', line 87
def with_import(filename, line)
with_frame(filename, line, :import) {yield}
end |
- with_mixin(filename, line, name) { ... }
Pushes a mixin frame onto the stack.
97 98 99 | # File '/Users/ceppstei/Projects/sass-lang/.sass/lib/sass/stack.rb', line 97
def with_mixin(filename, line, name)
with_frame(filename, line, :mixin, name) {yield}
end |