27 lines
719 B
Ruby
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
|