class Branding::Railtie

Public Class Methods

best_icon(ideal_width) click to toggle source

find the best suited icon in a rails app

# File lib/branding/railtie.rb, line 24
def self.best_icon(ideal_width)
  paths = icon_paths.sort_by do |path|
    png = PNG.from_file(path)
    (ideal_width - png.width).abs
  end

  if paths.empty?
    nil
  else
    paths.first
  end
end
icon_paths() click to toggle source
# File lib/branding/railtie.rb, line 37
def self.icon_paths
  paths = ["#{Rails.root}/public/", "#{Rails.root}/app/assets/images/"]
  file_patterns = ['favicon*.png', 'apple-touch-icon*.png']
  patterns = paths.product(file_patterns).map(&:join)
  Dir.glob(patterns)
end