Module: Compass::SassExtensions::Functions::FontFiles

Included in:
Sass::Script::Functions
Defined in:
lib/compass/sass_extensions/functions/font_files.rb

Constant Summary collapse

FONT_TYPES =
{
  :woff => 'woff',
  :otf => 'opentype',
  :opentype => 'opentype',
  :ttf => 'truetype',
  :truetype => 'truetype',
  :svg => 'svg',
  :eot => 'embedded-opentype'
}

Instance Method Summary collapse

Instance Method Details

#font_files(*args) ⇒ Object



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
38
39
40
# File 'lib/compass/sass_extensions/functions/font_files.rb', line 12

def font_files(*args)
  files = []
  args_length = args.length
  skip_next = false

  args.each_with_index do |arg, index|
    if skip_next
      skip_next = false
      next
    end

    type = (args_length > (index + 1)) ? args[index + 1].value.to_sym : :wrong

    if FONT_TYPES.key? type
      skip_next = true
    else
      # let pass url like font.type?thing#stuff
      type = arg.to_s.split('.').last.gsub(/(\?(.*))?(#(.*))?"/, '').to_sym
    end

    if FONT_TYPES.key? type
      files << "#{font_url(arg)} format('#{FONT_TYPES[type]}')"
    else
      raise Sass::SyntaxError, "Could not determine font type for #{arg}"
    end
  end

  Sass::Script::String.new(files.join(", "))
end