3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/prawn/svg/css/font_family_parser.rb', line 3
def self.parse(string)
in_quote = nil
in_escape = false
current = nil
fonts = []
string.each_char do |char|
if in_escape
in_escape = false
if current.nil?
current = char
fonts << current
else
current << char
end
elsif char == ',' && in_quote.nil?
current = nil
elsif char == in_quote
in_quote = nil
elsif in_quote.nil? && ['"', "'"].include?(char)
in_quote = char
elsif char == '\\'
in_escape = true
elsif current.nil?
if char.match(/\s/).nil?
current = char
fonts << current
end
else
current << char
end
end
fonts.map(&:rstrip)
end
|