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

[Sass] [Less] Support selector sequences.

This commit is contained in:
Nathan Weizenbaum 2010-04-27 01:11:35 -07:00
parent cc6c2df92a
commit 34e1a4172e
2 changed files with 38 additions and 6 deletions

View file

@ -50,13 +50,18 @@ WARNING
return root
end
sel =
case @selector
when /[+>~]/; "#{@selector} "
else @selector
sel = []
el = self
loop do
case el.selector
when ":", "::"; sel << "#{el.selector}#{el.name}"
else sel << el.selector << el.name
end
rule = Sass::Tree::RuleNode.new([sel, @name])
rules.each {|r| rule << r.to_sass_tree}
break unless el.rules.size == 1 && el.rules.first.is_a?(Element)
el = el.rules.first
end
rule = Sass::Tree::RuleNode.new(sel.reject {|s| s.empty?}.join(" "))
el.rules.each {|r| rule << r.to_sass_tree}
return rule
end

View file

@ -89,6 +89,33 @@ a.foo#bar[attr=val] {a: b}
LESS
end
def test_descendant_selector
assert_renders <<SCSS, <<LESS
.foo .bar {
a: b; }
SCSS
.foo .bar {a: b}
LESS
end
def test_child_selector
assert_renders <<SCSS, <<LESS
.foo > .bar {
a: b; }
SCSS
.foo > .bar {a: b}
LESS
end
def test_adjacent_selector
assert_renders <<SCSS, <<LESS
.foo + .bar {
a: b; }
SCSS
.foo + .bar {a: b}
LESS
end
# Properties
def test_space_separated_props