Project

General

Profile

Feature #42623 » 0001-Adds-gravatar-initials.patch

Marius BĂLTEANU, 2025-04-24 23:02

View differences:

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'))
(1-1/2)