14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/chunky_css.rb', line 14
def parse(css)
buckets = {}
scanner = StringScanner.new(css)
current_bucket = "all"
indent = 0
inside_media = false
while !scanner.eos? do
if scanner.scan(/@media (.*?)\{/)
current_bucket = scanner[1].strip
indent += 1
inside_media = true
end
char = scanner.getch
if char == "{"
indent += 1
elsif char == "}"
indent -= 1
if indent == 0 && inside_media
inside_media = false
current_bucket = "all"
char = ""
end
end
buckets[current_bucket] ||= MediaQuery.new(current_bucket)
buckets[current_bucket].css_rules += char
end
return buckets
end
|