Add a @debug directive (that needs documentation).

This commit is contained in:
Nathan Weizenbaum 2008-12-24 19:33:47 -08:00
parent e5e02a396c
commit 2608247cbf
2 changed files with 27 additions and 0 deletions

View File

@ -11,6 +11,7 @@ require 'sass/tree/mixin_node'
require 'sass/tree/if_node' require 'sass/tree/if_node'
require 'sass/tree/while_node' require 'sass/tree/while_node'
require 'sass/tree/for_node' require 'sass/tree/for_node'
require 'sass/tree/debug_node'
require 'sass/tree/file_node' require 'sass/tree/file_node'
require 'sass/environment' require 'sass/environment'
require 'sass/script' require 'sass/script'
@ -334,6 +335,10 @@ END
elsif directive == "if" elsif directive == "if"
offset = line.offset + line.text.index(value).to_i offset = line.offset + line.text.index(value).to_i
Tree::IfNode.new(parse_script(value, :line => line.index, :offset => offset), @options) Tree::IfNode.new(parse_script(value, :line => line.index, :offset => offset), @options)
elsif directive == "debug"
raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath debug directives.", @line + 1) unless line.children.empty?
offset = line.offset + line.text.index(value).to_i
Tree::DebugNode.new(parse_script(value, :line => line.index, :offset => offset), @options)
else else
Tree::DirectiveNode.new(line.text, @options) Tree::DirectiveNode.new(line.text, @options)
end end

View File

@ -0,0 +1,22 @@
module Sass
module Tree
class DebugNode < Node
def initialize(expr, options)
@expr = expr
super(options)
end
protected
def _perform(environment)
res = @expr.perform(environment)
if filename
puts "#{filename}:#{line} DEBUG: #{res}"
else
puts "Line #{line} DEBUG: #{res}"
end
[]
end
end
end
end