diff options
Diffstat (limited to 'app/helpers/users_helper.rb')
| -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 | 
