Module: IconFor

Defined in:
lib/icon_for.rb,
lib/icon_for/fa.rb,
lib/icon_for/core.rb,
lib/icon_for/data.rb,
lib/icon_for/version.rb

Defined Under Namespace

Modules: Data, FA

Constant Summary collapse

VERSION =
"0.1.8"

Class Method Summary collapse

Class Method Details

.[](mime_type) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/icon_for/core.rb', line 15

def self.[] mime_type
  case @config.source.downcase
  when :fa
    require "icon_for/fa"
    FA[mime_type]
  when :data
    self.icon_from_source mime_type, @config.data
  else
    raise "Unknown icon source `#{@config.source.downcase}'"
  end
end

.configObject



11
12
13
# File 'lib/icon_for/core.rb', line 11

def self.config
  block_given? ? yield(@config) : @config
end

.icon_from_source(mime_type, data) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/icon_for/core.rb', line 27

def self.icon_from_source mime_type, data
  raise "Invalid data object" unless data&.key?('media') and data&.key?('extensions') and data&.key?('icons')
  return data['icons']['fallback'] unless mime = MIME::Types[mime_type].first
  if data['extensions'].key? mime.preferred_extension
    icon = data['extensions'][mime.preferred_extension]
  elsif data['media'].key? mime.media_type
    icon = data['media'][mime.media_type]
  else
    icon = 'fallback'
  end
  data['icons'][icon]
end