Skip to content

Commit 464687f

Browse files
committed
Merge pull request zweilove#5 from christoffer/master
Address issue with comment stripping in the splitter
2 parents 416312c + 6c6d5cc commit 464687f

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

lib/css_splitter/splitter.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,9 @@ def self.count_selectors_of_rule(rule)
9595
private
9696

9797
def self.strip_comments(s)
98-
s.gsub(/\/\/.*$/, "").gsub(/\/\*.*?\*\//, "")
98+
s.gsub(/\/\*.*?\*\//m, "")
9999
end
100100

101101
end
102102

103-
end
103+
end

test/unit/splitter_test.rb

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,24 @@ class CssSplitterTest < ActiveSupport::TestCase
99
assert_equal CssSplitter::Splitter.count_selectors_of_rule('foo { color: baz; }'), 1
1010
assert_equal CssSplitter::Splitter.count_selectors_of_rule('foo, bar { color: baz; }'), 2
1111
end
12-
end
12+
13+
test '#split_string_into_rules' do
14+
simple = "a{foo:bar;}b{baz:qux;}"
15+
assert_equal ["a{foo:bar;}", "b{baz:qux;}"], CssSplitter::Splitter.split_string_into_rules(simple)
16+
end
17+
18+
test '#split_string_into_rules for single line comments' do
19+
multi_line = "a{foo:bar;} /* comment p{bar:foo;} */ b{baz:qux;}"
20+
assert_equal ["a{foo:bar;}", " b{baz:qux;}"], CssSplitter::Splitter.split_string_into_rules(multi_line)
21+
end
22+
23+
test '#split_string_into_rules for multiline comments' do
24+
multi_line = "a{foo:bar;}\n/*\nMultiline comment p{bar:foo;}\n*/\nb{baz:qux;}"
25+
assert_equal ["a{foo:bar;}", "\n\nb{baz:qux;}"], CssSplitter::Splitter.split_string_into_rules(multi_line)
26+
end
27+
28+
test '#split_string_into_rules for strings with protocol independent urls' do
29+
simple = "a{foo:url(//assets.server.com);}b{bar:url(//assets/server.com);}"
30+
assert_equal ["a{foo:url(//assets.server.com);}", "b{bar:url(//assets/server.com);}"], CssSplitter::Splitter.split_string_into_rules(simple)
31+
end
32+
end

0 commit comments

Comments
 (0)