Feature #42623 » 0001-Adds-gravatar-initials.patch
app/helpers/avatars_helper.rb | ||
---|---|---|
44 | 44 |
if user.respond_to?(:mail) |
45 | 45 |
email = user.mail |
46 | 46 |
options[:title] = user.name unless options[:title] |
47 |
options[:initials] = user.initials if options[:default] == "initials" |
|
47 | 48 |
elsif user.to_s =~ %r{<(.+?)>} |
48 | 49 |
email = $1 |
49 | 50 |
end |
app/helpers/settings_helper.rb | ||
---|---|---|
244 | 244 |
['Mystery man', 'mm'], |
245 | 245 |
['Retro', 'retro'], |
246 | 246 |
['Robohash', 'robohash'], |
247 |
['Wavatars', 'wavatar']] |
|
247 |
['Wavatars', 'wavatar'], |
|
248 |
['Initials', 'initials']] |
|
248 | 249 |
end |
249 | 250 |
end |
app/models/user.rb | ||
---|---|---|
275 | 275 |
end |
276 | 276 |
end |
277 | 277 | |
278 |
def initials |
|
279 |
"#{firstname.to_s.strip.first}#{lastname.to_s.strip.first}".upcase.strip |
|
280 |
end |
|
281 | ||
278 | 282 |
def registered? |
279 | 283 |
self.status == STATUS_REGISTERED |
280 | 284 |
end |
lib/plugins/gravatar/lib/gravatar.rb | ||
---|---|---|
69 | 69 |
options[:default] = CGI::escape(options[:default]) unless options[:default].nil? |
70 | 70 |
gravatar_api_url(email_hash).tap do |url| |
71 | 71 |
opts = [] |
72 |
[:rating, :size, :default].each do |opt| |
|
72 |
[:rating, :size, :default, :initials].each do |opt|
|
|
73 | 73 |
unless options[opt].nil? |
74 | 74 |
value = h(options[opt]) |
75 | 75 |
opts << [opt, value].join('=') |
test/helpers/avatars_helper_test.rb | ||
---|---|---|
68 | 68 |
assert_include 'class="gravatar picture"', avatar('jsmith <jsmith@somenet.foo>', :class => 'picture') |
69 | 69 |
end |
70 | 70 | |
71 |
def test_avatar_with_initials |
|
72 |
with_settings :gravatar_default => 'initials' do |
|
73 |
assert_include 'initials="RA"', avatar(User.find(1)) |
|
74 |
end |
|
75 |
end |
|
76 | ||
77 |
def test_avatar_should_reject_initials_if_default_is_not_initials |
|
78 |
with_settings :gravatar_default => 'identicon' do |
|
79 |
assert_not_include 'initials="RA"', avatar(User.find(1)) |
|
80 |
end |
|
81 |
end |
|
82 | ||
71 | 83 |
def test_avatar_disabled |
72 | 84 |
with_settings :gravatar_enabled => '0' do |
73 | 85 |
assert_equal '', avatar(User.find_by_mail('jsmith@somenet.foo')) |