travis-api/lib/travis/api/v3/renderer/avatar_url.rb
2015-04-30 17:08:52 +02:00

27 lines
719 B
Ruby

require 'digest/md5'
module Travis::API::V3
module Renderer::AvatarURL
GRAVATAR_URL = 'https://0.gravatar.com/avatar/%s'
private_constant :GRAVATAR_URL
extend self
def avatar_url(object = @model)
case object
when has(:avatar_url) then object.avatar_url
when has(:gravatar_url) then object.gravatar_url
when has(:gravatar_id) then GRAVATAR_URL % object.gravatar_id
when has(:email) then GRAVATAR_URL % Digest::MD5.hexdigest(object.email)
when String then GRAVATAR_URL % Digest::MD5.hexdigest(object)
end
end
def has(field)
proc { |o| o.respond_to?(field) and o.send(field).present? }
end
private :has
end
end