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:
parent
da671b70d3
commit
1146240b73
15 changed files with 49 additions and 52 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue