class AllTheFavicons::Base

Private Class Methods

assets_root() click to toggle source
# File lib/all_the_favicons/base.rb, line 6
def assets_root
  Rails.root.join("app", "assets", "favicons")
end
content_type(str) click to toggle source
# File lib/all_the_favicons/base.rb, line 10
def content_type(str)
  case File.extname(str.downcase)
  when ".gif"
    "image/gif"
  when ".ico"
    "image/x-icon"
  when ".svg"
    "image/svg+xml"
  when ".png"
    "image/png"
  when ".jpg", ".jpeg"
    "image/jpeg"
  end
end
default_size() click to toggle source
# File lib/all_the_favicons/base.rb, line 25
def default_size
  raise "Default size missing"
end
density(str) click to toggle source
# File lib/all_the_favicons/base.rb, line 29
def density(str)
  dimensions(str).x / 48.0
end
dimensions(str) click to toggle source
# File lib/all_the_favicons/base.rb, line 37
def dimensions(str)
  return default_size unless dimensions?(str)
  Vector2d.parse(str.match(/\d+x\d+/)[0]).to_i_vector
end
dimensions?(str) click to toggle source
# File lib/all_the_favicons/base.rb, line 33
def dimensions?(str)
  str.match?(/\d+x\d+/)
end
files(expr = nil) click to toggle source
# File lib/all_the_favicons/base.rb, line 42
def files(expr = nil)
  return [] unless File.exist?(assets_root)
  files = Dir.entries(assets_root)
             .select { |f| f =~ /\.(jpg|jpeg|png|gif|ico|svg)$/ }
  return files unless expr
  files.select { |f| f =~ expr }
end
icon(f) click to toggle source
# File lib/all_the_favicons/base.rb, line 50
def icon(f)
  {
    src: f,
    sizes: dimensions(f).to_s,
    type: content_type(f),
    density: density(f)
  }
end