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'))
|