def build_with_sass(env)
selectors.build(env, :mixin).each do |path|
el = path.inject(env.root) do |current, node|
current.descend(node.selector, node) or raise MixinNameError, "#{selectors.text_value} in #{env}"
end
if el.is_a?(Node::Mixin::Def)
env << Node::Mixin::Call.new(el, [], env)
else
sel = selector_str(path)
base = selector_str(selector_base(path))
if base == sel
env << Node::SassNode.new(Sass::Tree::ExtendNode.new([sel]))
else
Haml::Util.haml_warn "WARNING: Sass doesn't support mixing in selector sequences.\nReplacing \"\#{sel}\" with \"@extend \#{base}\"\n"
env << Node::SassNode.new(Sass::Tree::CommentNode.new("// #{sel};", true))
env << Node::SassNode.new(Sass::Tree::ExtendNode.new([base]))
end
end
end
end