class Prawn::SVG::CSS

Public Class Methods

parse_font_family_string(string) click to toggle source
# File lib/prawn/svg/css.rb, line 3
def parse_font_family_string(string)
  in_quote = nil
  in_escape = false
  current = nil
  fonts = []

  string.chars.each 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? && (char == '"' || 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