Class: FontAssets::MimeTypes

Inherits:
Object
  • Object
show all
Defined in:
lib/font_assets/mime_types.rb

Constant Summary collapse

DEFAULT_TYPE =
'application/octet-stream'
MIME_TYPES =
{
  '.eot' => 'application/vnd.ms-fontobject',
  '.svg' => 'image/svg+xml',
  '.ttf' => 'application/x-font-ttf',
  '.otf' => 'application/x-font-otf',
  '.woff' => 'application/x-font-woff',
  '.woff2' => 'application/x-font-woff2'
}

Instance Method Summary collapse

Constructor Details

#initialize(types, default = DEFAULT_TYPE.dup) ⇒ MimeTypes

Returns a new instance of MimeTypes.



13
14
15
16
17
18
19
20
# File 'lib/font_assets/mime_types.rb', line 13

def initialize(types, default = DEFAULT_TYPE.dup)
  @types = types.dup
  @default = default

  MIME_TYPES.each_pair do |extension, type|
    set extension, type
  end
end

Instance Method Details

#[](extension) ⇒ Object



22
23
24
# File 'lib/font_assets/mime_types.rb', line 22

def [](extension)
  @types.fetch(extension, DEFAULT_TYPE.dup).dup
end

#font?(extension) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/font_assets/mime_types.rb', line 26

def font?(extension)
  MIME_TYPES.keys.include? extension
end

#set(extension, mime_type) ⇒ Object



30
31
32
33
34
# File 'lib/font_assets/mime_types.rb', line 30

def set(extension, mime_type)
  if @types[extension].nil? || @types[extension] == @default
    set!(extension, mime_type)
  end
end

#set!(extension, mime_type) ⇒ Object



36
37
38
# File 'lib/font_assets/mime_types.rb', line 36

def set!(extension, mime_type)
  @types[extension] = mime_type
end