Skip to content

Commit 923e91d

Browse files
committed
Fixes bug where all the attributes are commented out
1 parent 8e5d2d5 commit 923e91d

File tree

2 files changed

+19
-7
lines changed

2 files changed

+19
-7
lines changed

lib/csscss/parser/css.rb

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class Parser < Parslet::Parser
1313
include Common
1414

1515
rule(:comment) {
16-
space? >> str('/*') >> (str('*/').absent? >> any).repeat >> str('*/') >> space?
16+
(space? >> str('/*') >> (str('*/').absent? >> any).repeat >> str('*/') >> space?).as(:comment)
1717
}
1818

1919
rule(:css_space?) {
@@ -52,7 +52,7 @@ class Parser < Parslet::Parser
5252

5353
#rule(:blocks) { (nested_ruleset.as(:nested) | ruleset).repeat(0).as(:blocks) }
5454
rule(:blocks) {
55-
space? >> (comment.as(:comment) | nested_ruleset | ruleset).repeat(1).as(:blocks) >> space?
55+
space? >> (comment | nested_ruleset | ruleset).repeat(1).as(:blocks) >> space?
5656
}
5757

5858
root(:blocks)
@@ -63,15 +63,13 @@ class Transformer < Parslet::Transform
6363
rulesets
6464
}
6565

66-
rule(comment: simple(:comment)) {
67-
[]
68-
}
66+
rule(comment: simple(:comment)) { nil }
6967

7068
rule(ruleset: {
7169
selector: simple(:selector),
7270
properties: sequence(:properties)
7371
}) {
74-
Ruleset.new(Selector.from_parser(selector), properties)
72+
Ruleset.new(Selector.from_parser(selector), properties.compact)
7573
}
7674

7775
rule({
@@ -82,7 +80,7 @@ class Transformer < Parslet::Transform
8280
}
8381

8482
rule(blocks: subtree(:rulesets)) {|context|
85-
context[:rulesets].flatten
83+
context[:rulesets].flatten.compact
8684
}
8785
end
8886
end

test/csscss/parser/css_test.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,20 @@ module Css
9090
])
9191
end
9292

93+
it "parses commented attributes" do
94+
css = %$
95+
.foo {
96+
/*
97+
some comment
98+
*/
99+
}
100+
$
101+
102+
trans(css).must_equal([
103+
rs(sel(".foo"), [])
104+
])
105+
end
106+
93107
it "recognizes media queries" do
94108
css = %$
95109
@media only screen {

0 commit comments

Comments
 (0)