File tree Expand file tree Collapse file tree 2 files changed +19
-7
lines changed
Expand file tree Collapse file tree 2 files changed +19
-7
lines changed Original file line number Diff line number Diff 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
Original file line number Diff line number Diff 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 {
You can’t perform that action at this time.
0 commit comments