diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/helpers/users_helper.rb | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 0ddea8356..0dfc1552f 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -1,16 +1,28 @@ module UsersHelper def user_gravatar_image_tag(user, size = 64) - gravatar_image_tag user.email, :alt => "", :class => "preview", :gravatar => { :default => user_default_avatar , :size => size } + image_tag user_image(user), :alt => "", :class => "preview", :width => size, :height => size end - def user_default_avatar - return "#{root_url}#{image_path('icons/user.png')}" if Rails.application.config.relative_url_root.blank? - - relative_url_root = Rails.application.config.relative_url_root.gsub( /\//, '') - "#{root_url}#{image_path('icons/user.png')}". - sub( Regexp.new("/#{relative_url_root}/#{relative_url_root}/"), "/#{relative_url_root}/"). - sub( Regexp.new("/#{relative_url_root}//#{relative_url_root}/"), "/#{relative_url_root}/") + def gravatar_hash(user) + Digest::MD5.hexdigest( user.email) + end + def gravatar_url( user) + "http://www.gravatar.com/avatar/#{gravatar_hash(user)}?d=404" + end + def user_image(user) + begin + gravatar_resource = RestClient.get( gravatar_url( user)){|response, request, result| response } + rescue + # Happens if network is not available + return 'icons/user.png' + end + if gravatar_resource.code == 404 + # Happens if user has not registered to gravatar + 'icons/user.png' + else + gravatar_url( user) + end end end |
