gitlab-org--gitlab-foss/lib/gitlab/favicon.rb

43 lines
1.2 KiB
Ruby
Raw Normal View History

2017-09-26 15:04:37 +00:00
module Gitlab
class Favicon
class << self
def default
return custom_favicon_url(appearance_favicon.default.url) if appearance_favicon.exists?
2017-09-26 15:04:37 +00:00
return 'favicon-yellow.ico' if Gitlab::Utils.to_boolean(ENV['CANARY'])
return 'favicon-blue.ico' if Rails.env.development?
'favicon.ico'
end
def status(status_name)
if appearance_favicon.exists?
custom_favicon_url(appearance_favicon.public_send("status_#{status_name}").url) # rubocop:disable GitlabSecurity/PublicSend
else
dir = 'ci_favicons'
dir = File.join(dir, 'dev') if Rails.env.development?
dir = File.join(dir, 'canary') if Gitlab::Utils.to_boolean(ENV['CANARY'])
File.join(dir, "favicon_status_#{status_name}.ico")
end
end
2017-09-26 15:04:37 +00:00
private
def appearance
Appearance.current || Appearance.new
2017-09-26 15:04:37 +00:00
end
def appearance_favicon
appearance.favicon
2017-09-26 15:04:37 +00:00
end
# Without the '?' at the end of the favicon url the custom favicon (i.e.
# the favicons that are served through `UploadController`) are not shown
# in the browser.
def custom_favicon_url(url)
"#{url}?"
end
2017-09-26 15:04:37 +00:00
end
end
end