mirror of
https://github.com/haml/haml.git
synced 2022-11-09 12:33:31 -05:00
[Sass] Represent mixin args as arrays rather than hashes.
This commit is contained in:
parent
ebd8872b8e
commit
c6344a3cb1
2 changed files with 7 additions and 6 deletions
|
@ -408,7 +408,7 @@ END
|
|||
raise SyntaxError.new("Invalid variable \"#{arg}\".", @line) unless arg =~ Script::VALIDATE
|
||||
raise SyntaxError.new("Required arguments must not follow optional arguments \"#{arg}\".", @line) if default_arg_found && !default
|
||||
default = parse_script(default, :offset => line.offset + line.text.index(default)) if default
|
||||
{ :name => arg[1..-1], :default_value => default }
|
||||
[arg[1..-1], default]
|
||||
end
|
||||
Tree::MixinDefNode.new(name, args, @options)
|
||||
end
|
||||
|
|
|
@ -18,14 +18,15 @@ Mixin #{@name} takes #{mixin.args.size} argument#{'s' if mixin.args.size != 1}
|
|||
but #{@args.size} #{@args.size == 1 ? 'was' : 'were'} passed.
|
||||
END
|
||||
|
||||
environment = mixin.args.zip(@args).inject(Sass::Environment.new(mixin.environment)) do |env, (arg, value)|
|
||||
env.set_local_var(arg[:name],
|
||||
environment = mixin.args.zip(@args).
|
||||
inject(Sass::Environment.new(mixin.environment)) do |env, ((name, default), value)|
|
||||
env.set_local_var(name,
|
||||
if value
|
||||
value.perform(environment)
|
||||
elsif arg[:default_value]
|
||||
arg[:default_value].perform(env)
|
||||
elsif default
|
||||
default.perform(env)
|
||||
end)
|
||||
raise Sass::SyntaxError.new("Mixin #{@name} is missing parameter !#{arg[:name]}.") unless env.var(arg[:name])
|
||||
raise Sass::SyntaxError.new("Mixin #{@name} is missing parameter !#{name}.") unless env.var(name)
|
||||
env
|
||||
end
|
||||
mixin.tree.map {|c| c.perform(environment)}.flatten
|
||||
|
|
Loading…
Add table
Reference in a new issue