1
0
Fork 0
mirror of https://github.com/haml/haml.git synced 2022-11-09 12:33:31 -05:00

[Sass] Don't pass options to Tree::Node#initialize.

This commit is contained in:
Nathan Weizenbaum 2009-04-21 19:25:18 -07:00
parent da671b70d3
commit 1146240b73
15 changed files with 49 additions and 52 deletions

View file

@ -130,7 +130,7 @@ module Sass
private private
def build_tree def build_tree
root = Tree::Node.new({}) root = Tree::Node.new
whitespace whitespace
rules root rules root
expand_commas root expand_commas root
@ -154,7 +154,7 @@ module Sass
directive = rule[0] == ?@ directive = rule[0] == ?@
if directive if directive
node = Tree::DirectiveNode.new(rule, {}) node = Tree::DirectiveNode.new(rule)
return node if @template.scan(/;/) return node if @template.scan(/;/)
assert_match /\{/ assert_match /\{/
@ -165,7 +165,7 @@ module Sass
end end
assert_match /\{/ assert_match /\{/
node = Tree::RuleNode.new(rule, {}) node = Tree::RuleNode.new(rule)
attributes(node) attributes(node)
return node return node
end end
@ -183,7 +183,7 @@ module Sass
end end
assert_match /(;|(?=\}))/ assert_match /(;|(?=\}))/
rule << Tree::AttrNode.new(name, value, nil, {}) rule << Tree::AttrNode.new(name, value, nil)
end end
assert_match /\}/ assert_match /\}/
@ -231,7 +231,7 @@ module Sass
root.children.map! do |child| root.children.map! do |child|
next child unless Tree::RuleNode === child && child.rule.include?(',') next child unless Tree::RuleNode === child && child.rule.include?(',')
child.rule.split(',').map do |rule| child.rule.split(',').map do |rule|
node = Tree::RuleNode.new(rule.strip, {}) node = Tree::RuleNode.new(rule.strip)
node.children = child.children node.children = child.children
node node
end end
@ -277,7 +277,7 @@ module Sass
root.children.select { |c| Tree::RuleNode === c }.each do |child| root.children.select { |c| Tree::RuleNode === c }.each do |child|
root.children.delete child root.children.delete child
first, rest = child.rule.scan(/^(&?(?: .|[^ ])[^.#: \[]*)([.#: \[].*)?$/).first first, rest = child.rule.scan(/^(&?(?: .|[^ ])[^.#: \[]*)([.#: \[].*)?$/).first
rules[first] ||= Tree::RuleNode.new(first, {}) rules[first] ||= Tree::RuleNode.new(first)
if rest if rest
child.rule = "&" + rest child.rule = "&" + rest
rules[first] << child rules[first] << child

View file

@ -120,7 +120,7 @@ module Sass
end end
def render_to_tree def render_to_tree
root = Tree::Node.new(@options) root = Tree::Node.new
append_children(root, tree(tabulate(@template)).first, true) append_children(root, tree(tabulate(@template)).first, true)
root.options = @options root.options = @options
root root
@ -251,7 +251,7 @@ END
else else
# Support CSS3-style pseudo-elements, # Support CSS3-style pseudo-elements,
# which begin with :: # which begin with ::
Tree::RuleNode.new(line.text, @options) Tree::RuleNode.new(line.text)
end end
when Script::VARIABLE_CHAR when Script::VARIABLE_CHAR
parse_variable(line) parse_variable(line)
@ -260,12 +260,12 @@ END
when DIRECTIVE_CHAR when DIRECTIVE_CHAR
parse_directive(parent, line, root) parse_directive(parent, line, root)
when ESCAPE_CHAR when ESCAPE_CHAR
Tree::RuleNode.new(line.text[1..-1], @options) Tree::RuleNode.new(line.text[1..-1])
when MIXIN_DEFINITION_CHAR when MIXIN_DEFINITION_CHAR
parse_mixin_definition(line) parse_mixin_definition(line)
when MIXIN_INCLUDE_CHAR when MIXIN_INCLUDE_CHAR
if line.text[1].nil? if line.text[1].nil?
Tree::RuleNode.new(line.text, @options) Tree::RuleNode.new(line.text)
else else
parse_mixin_include(line, root) parse_mixin_include(line, root)
end end
@ -273,7 +273,7 @@ END
if line.text =~ ATTRIBUTE_ALTERNATE_MATCHER if line.text =~ ATTRIBUTE_ALTERNATE_MATCHER
parse_attribute(line, ATTRIBUTE_ALTERNATE) parse_attribute(line, ATTRIBUTE_ALTERNATE)
else else
Tree::RuleNode.new(line.text, @options) Tree::RuleNode.new(line.text)
end end
end end
end end
@ -289,7 +289,7 @@ END
else else
value value
end end
Tree::AttrNode.new(name, expr, attribute_regx == ATTRIBUTE ? :old : :new, @options) Tree::AttrNode.new(name, expr, attribute_regx == ATTRIBUTE ? :old : :new)
end end
def parse_variable(line) def parse_variable(line)
@ -297,14 +297,14 @@ END
raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath variable declarations.", @line + 1) unless line.children.empty? raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath variable declarations.", @line + 1) unless line.children.empty?
raise SyntaxError.new("Invalid variable: \"#{line.text}\".", @line) unless name && value raise SyntaxError.new("Invalid variable: \"#{line.text}\".", @line) unless name && value
Tree::VariableNode.new(name, parse_script(value, :offset => line.offset + line.text.index(value)), op == '||=', @options) Tree::VariableNode.new(name, parse_script(value, :offset => line.offset + line.text.index(value)), op == '||=')
end end
def parse_comment(line) def parse_comment(line)
if line[1] == CSS_COMMENT_CHAR || line[1] == SASS_COMMENT_CHAR if line[1] == CSS_COMMENT_CHAR || line[1] == SASS_COMMENT_CHAR
Tree::CommentNode.new(line, line[1] == SASS_COMMENT_CHAR, @options) Tree::CommentNode.new(line, line[1] == SASS_COMMENT_CHAR)
else else
Tree::RuleNode.new(line, @options) Tree::RuleNode.new(line)
end end
end end
@ -323,17 +323,17 @@ END
parse_else(parent, line, value) parse_else(parent, line, value)
elsif directive == "while" elsif directive == "while"
raise SyntaxError.new("Invalid while directive '@while': expected expression.") unless value raise SyntaxError.new("Invalid while directive '@while': expected expression.") unless value
Tree::WhileNode.new(parse_script(value, :offset => offset), @options) Tree::WhileNode.new(parse_script(value, :offset => offset))
elsif directive == "if" elsif directive == "if"
raise SyntaxError.new("Invalid if directive '@if': expected expression.") unless value raise SyntaxError.new("Invalid if directive '@if': expected expression.") unless value
Tree::IfNode.new(parse_script(value, :offset => offset), @options) Tree::IfNode.new(parse_script(value, :offset => offset))
elsif directive == "debug" elsif directive == "debug"
raise SyntaxError.new("Invalid debug directive '@debug': expected expression.") unless value raise SyntaxError.new("Invalid debug directive '@debug': expected expression.") unless value
raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath debug directives.", @line + 1) unless line.children.empty? 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 offset = line.offset + line.text.index(value).to_i
Tree::DebugNode.new(parse_script(value, :offset => offset), @options) Tree::DebugNode.new(parse_script(value, :offset => offset))
else else
Tree::DirectiveNode.new(line.text, @options) Tree::DirectiveNode.new(line.text)
end end
end end
@ -354,7 +354,7 @@ END
parsed_from = parse_script(from_expr, :offset => line.offset + line.text.index(from_expr)) parsed_from = parse_script(from_expr, :offset => line.offset + line.text.index(from_expr))
parsed_to = parse_script(to_expr, :offset => line.offset + line.text.index(to_expr)) parsed_to = parse_script(to_expr, :offset => line.offset + line.text.index(to_expr))
Tree::ForNode.new(var[1..-1], parsed_from, parsed_to, to_name == 'to', @options) Tree::ForNode.new(var[1..-1], parsed_from, parsed_to, to_name == 'to')
end end
def parse_else(parent, line, text) def parse_else(parent, line, text)
@ -368,7 +368,7 @@ END
expr = parse_script($1, :offset => line.offset + line.text.index($1)) expr = parse_script($1, :offset => line.offset + line.text.index($1))
end end
node = Tree::IfNode.new(expr, @options) node = Tree::IfNode.new(expr)
append_children(node, line.children, false) append_children(node, line.children, false)
previous.add_else node previous.add_else node
nil nil
@ -403,7 +403,7 @@ END
default = parse_script(default, :offset => line.offset + line.text.index(default)) if default default = parse_script(default, :offset => line.offset + line.text.index(default)) if default
{ :name => arg[1..-1], :default_value => default } { :name => arg[1..-1], :default_value => default }
end end
Tree::MixinDefNode.new(name, args, @options) Tree::MixinDefNode.new(name, args)
end end
def parse_mixin_include(line, root) def parse_mixin_include(line, root)
@ -413,7 +413,7 @@ END
raise SyntaxError.new("Invalid mixin include \"#{line.text}\".", @line) if name.nil? || args.nil? raise SyntaxError.new("Invalid mixin include \"#{line.text}\".", @line) if name.nil? || args.nil?
args.each {|a| raise SyntaxError.new("Mixin arguments can't be empty.", @line) if a.empty?} args.each {|a| raise SyntaxError.new("Mixin arguments can't be empty.", @line) if a.empty?}
Tree::MixinNode.new(name, args.map {|s| parse_script(s, :offset => line.offset + line.text.index(s))}, @options) Tree::MixinNode.new(name, args.map {|s| parse_script(s, :offset => line.offset + line.text.index(s))})
end end
def parse_script(script, options = {}) def parse_script(script, options = {})
@ -438,7 +438,7 @@ END
raise SyntaxError.new(e.message, @line) raise SyntaxError.new(e.message, @line)
end end
next Tree::DirectiveNode.new("@import url(#{filename})", @options) if filename =~ /\.css$/ next Tree::DirectiveNode.new("@import url(#{filename})") if filename =~ /\.css$/
compiled_filename = filename.gsub(/\.sass$/, ".sassc") compiled_filename = filename.gsub(/\.sass$/, ".sassc")
if File.readable?(compiled_filename) if File.readable?(compiled_filename)
@ -462,7 +462,7 @@ END
end end
end end
Tree::FileNode.new(filename, root.children, @options) Tree::FileNode.new(filename, root.children)
end.flatten end.flatten
end end

View file

@ -2,11 +2,11 @@ module Sass::Tree
class AttrNode < Node class AttrNode < Node
attr_accessor :name, :value attr_accessor :name, :value
def initialize(name, value, attr_syntax, options) def initialize(name, value, attr_syntax)
@name = name @name = name
@value = value @value = value
@attr_syntax = attr_syntax @attr_syntax = attr_syntax
super(options) super()
end end
def ==(other) def ==(other)

View file

@ -4,10 +4,10 @@ module Sass::Tree
class CommentNode < Node class CommentNode < Node
attr_accessor :value attr_accessor :value
def initialize(value, silent, options) def initialize(value, silent)
@value = value[2..-1].strip @value = value[2..-1].strip
@silent = silent @silent = silent
super(options) super()
end end
def options=(options) def options=(options)

View file

@ -1,9 +1,9 @@
module Sass module Sass
module Tree module Tree
class DebugNode < Node class DebugNode < Node
def initialize(expr, options) def initialize(expr)
@expr = expr @expr = expr
super(options) super()
end end
protected protected

View file

@ -2,9 +2,9 @@ module Sass::Tree
class DirectiveNode < Node class DirectiveNode < Node
attr_accessor :value attr_accessor :value
def initialize(value, options) def initialize(value)
@value = value @value = value
super(options) super()
end end
def to_s(tabs) def to_s(tabs)

View file

@ -1,9 +1,8 @@
module Sass module Sass
module Tree module Tree
class FileNode < Node class FileNode < Node
def initialize(filename, children, options) def initialize(filename, children)
@filename = filename @filename = filename
super(options)
self.children = children self.children = children
end end

View file

@ -2,12 +2,12 @@ require 'sass/tree/node'
module Sass::Tree module Sass::Tree
class ForNode < Node class ForNode < Node
def initialize(var, from, to, exclusive, options) def initialize(var, from, to, exclusive)
@var = var @var = var
@from = from @from = from
@to = to @to = to
@exclusive = exclusive @exclusive = exclusive
super(options) super()
end end
protected protected

View file

@ -4,10 +4,10 @@ module Sass::Tree
class IfNode < Node class IfNode < Node
attr_accessor :else attr_accessor :else
def initialize(expr, options) def initialize(expr)
@expr = expr @expr = expr
@last_else = self @last_else = self
super(options) super()
end end
def add_else(node) def add_else(node)

View file

@ -1,10 +1,10 @@
module Sass module Sass
module Tree module Tree
class MixinDefNode < Node class MixinDefNode < Node
def initialize(name, args, options) def initialize(name, args)
@name = name @name = name
@args = args @args = args
super(options) super()
end end
private private

View file

@ -2,10 +2,10 @@ require 'sass/tree/node'
module Sass::Tree module Sass::Tree
class MixinNode < Node class MixinNode < Node
def initialize(name, args, options) def initialize(name, args)
@name = name @name = name
@args = args @args = args
super(options) super()
end end
protected protected

View file

@ -6,9 +6,7 @@ module Sass
attr_accessor :filename attr_accessor :filename
attr_reader :options attr_reader :options
def initialize(options) def initialize
@options = options
@style = options[:style]
@children = [] @children = []
end end

View file

@ -7,9 +7,9 @@ module Sass::Tree
attr_accessor :rules attr_accessor :rules
def initialize(rule, options) def initialize(rule)
@rules = [rule] @rules = [rule]
super(options) super()
end end
def rule def rule

View file

@ -1,11 +1,11 @@
module Sass module Sass
module Tree module Tree
class VariableNode < Node class VariableNode < Node
def initialize(name, expr, guarded, options) def initialize(name, expr, guarded)
@name = name @name = name
@expr = expr @expr = expr
@guarded = guarded @guarded = guarded
super(options) super()
end end
protected protected

View file

@ -2,9 +2,9 @@ require 'sass/tree/node'
module Sass::Tree module Sass::Tree
class WhileNode < Node class WhileNode < Node
def initialize(expr, options) def initialize(expr)
@expr = expr @expr = expr
super(options) super()
end end
private private