class Sass::Stack
A class representing the stack when compiling a Sass file.
def deep_copy
def deep_copy stack = Stack.new stack.frames.replace frames stack end
def initialize
def initialize @frames = [] end
def to_s
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
def with_base(filename, line)
- Yield: - [] A block in which the new frame is on the stack.
Parameters:
-
line
(String
) -- See \{Frame#line}. -
filename
(String
) -- See \{Frame#filename}.
def with_base(filename, line) with_frame(filename, line, :base) {yield} end
def with_frame(filename, line, type, name = nil)
def with_frame(filename, line, type, name = nil) @frames.pop if @frames.last && @frames.last.type == :base @frames.push(Frame.new(filename, line, type, name)) yield ensure @frames.pop unless type == :base && @frames.last && @frames.last.type != :base end
def with_import(filename, line)
- Yield: - [] A block in which the new frame is on the stack.
Parameters:
-
line
(String
) -- See \{Frame#line}. -
filename
(String
) -- See \{Frame#filename}.
def with_import(filename, line) with_frame(filename, line, :import) {yield} end
def with_mixin(filename, line, name)
- Yield: - [] A block in which the new frame is on the stack.
Parameters:
-
name
(String
) -- See \{Frame#name}. -
line
(String
) -- See \{Frame#line}. -
filename
(String
) -- See \{Frame#filename}.
def with_mixin(filename, line, name) with_frame(filename, line, :mixin, name) {yield} end