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