##// END OF EJS Templates
Port async delivery methods to Rails 3....
Port async delivery methods to Rails 3. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9532 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r8800:4fcac7d3b129
r9350:26868d8b1404
Show More
gravatar.rb
88 lines | 2.9 KiB | text/x-ruby | RubyLexer
Eric Davis
Gravatar support for issue detai, user grid, and activity stream...
r1960 require 'digest/md5'
require 'cgi'
module GravatarHelper
# These are the options that control the default behavior of the public
# methods. They can be overridden during the actual call to the helper,
# or you can set them in your environment.rb as such:
#
# # Allow racier gravatars
# GravatarHelper::DEFAULT_OPTIONS[:rating] = 'R'
#
DEFAULT_OPTIONS = {
# The URL of a default image to display if the given email address does
# not have a gravatar.
:default => nil,
# The default size in pixels for the gravatar image (they're square).
:size => 50,
# The maximum allowed MPAA rating for gravatars. This allows you to
# exclude gravatars that may be out of character for your site.
:rating => 'PG',
Eric Davis
Upgraded the gravatar plugin from http://github.com/woods/gravatar-plugin...
r2727 # The alt text to use in the img tag for the gravatar. Since it's a
# decorational picture, the alt text should be empty according to the
# XHTML specs.
:alt => '',
Eric Davis
Rewrite the Gantt chart. #6276...
r3958
# The title text to use for the img tag for the gravatar.
:title => '',
Eric Davis
Gravatar support for issue detai, user grid, and activity stream...
r1960
# The class to assign to the img tag for the gravatar.
:class => 'gravatar',
Eric Davis
Upgraded the gravatar plugin from http://github.com/woods/gravatar-plugin...
r2727
# Whether or not to display the gravatars using HTTPS instead of HTTP
:ssl => false,
Eric Davis
Gravatar support for issue detai, user grid, and activity stream...
r1960 }
# The methods that will be made available to your views.
module PublicMethods
# Return the HTML img tag for the given user's gravatar. Presumes that
# the given user object will respond_to "email", and return the user's
# email address.
def gravatar_for(user, options={})
gravatar(user.email, options)
end
# Return the HTML img tag for the given email address's gravatar.
def gravatar(email, options={})
src = h(gravatar_url(email, options))
options = DEFAULT_OPTIONS.merge(options)
Toshi MARUYAMA
Rails3: use image_tag instead of hard-coded html tag to prevent escaping in gravatar plugin...
r8800 [:class, :alt, :title].each { |opt| options[opt] = h(options[opt]) }
image_tag src, options
Eric Davis
Gravatar support for issue detai, user grid, and activity stream...
r1960 end
Eric Davis
Upgraded the gravatar plugin from http://github.com/woods/gravatar-plugin...
r2727
# Returns the base Gravatar URL for the given email hash. If ssl evaluates to true,
# a secure URL will be used instead. This is required when the gravatar is to be
# displayed on a HTTPS site.
def gravatar_api_url(hash, ssl=false)
if ssl
"https://secure.gravatar.com/avatar/#{hash}"
else
"http://www.gravatar.com/avatar/#{hash}"
end
end
Eric Davis
Gravatar support for issue detai, user grid, and activity stream...
r1960
# Return the gravatar URL for the given email address.
def gravatar_url(email, options={})
email_hash = Digest::MD5.hexdigest(email)
options = DEFAULT_OPTIONS.merge(options)
options[:default] = CGI::escape(options[:default]) unless options[:default].nil?
Jean-Philippe Lang
Use Object#tap instead of #returning (#6887)....
r4292 gravatar_api_url(email_hash, options.delete(:ssl)).tap do |url|
Eric Davis
Upgraded the gravatar plugin from http://github.com/woods/gravatar-plugin...
r2727 opts = []
Eric Davis
Gravatar support for issue detai, user grid, and activity stream...
r1960 [:rating, :size, :default].each do |opt|
unless options[opt].nil?
value = h(options[opt])
Eric Davis
Upgraded the gravatar plugin from http://github.com/woods/gravatar-plugin...
r2727 opts << [opt, value].join('=')
Eric Davis
Gravatar support for issue detai, user grid, and activity stream...
r1960 end
end
Eric Davis
Upgraded the gravatar plugin from http://github.com/woods/gravatar-plugin...
r2727 url << "?#{opts.join('&')}" unless opts.empty?
Eric Davis
Gravatar support for issue detai, user grid, and activity stream...
r1960 end
end
end
Eric Davis
Rewrite the Gantt chart. #6276...
r3958 end