From f17891b14d67d6bc15b0348b3e6f45142e327958 Mon Sep 17 00:00:00 2001 From: Robert Richter Date: Wed, 21 Sep 2016 20:21:52 -0500 Subject: [PATCH 01/10] Add image_url property to User --- app/models/user.rb | 7 +++++++ test/models/user_test.rb | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index 5110ea7f..aeea6361 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,3 +1,5 @@ +require 'digest/md5' + ## # a person using the Indent web application. Owns all other content. class User < ActiveRecord::Base @@ -57,6 +59,11 @@ class User < ActiveRecord::Base ].sum end + def image_url + email_md5 = Digest::MD5.hexdigest(email.downcase) + "https://www.gravatar.com/avatar/#{email_md5}" + end + private # Attributes that are non-public, and should be blacklisted from any public diff --git a/test/models/user_test.rb b/test/models/user_test.rb index c43b03fb..50f226d7 100644 --- a/test/models/user_test.rb +++ b/test/models/user_test.rb @@ -2,5 +2,9 @@ require 'test_helper' # Tests for the User model class class UserTest < ActiveSupport::TestCase - # Blank, for now + test 'user has a Gravatar profile image' do + user = build(:user, email: 'profile.image.test@example.com') + + assert_equal user.image_url, 'https://www.gravatar.com/avatar/d2fd00e79c471f49c33b6bcb6b08d08d' + end end From d34b99f9ea636dc4bd04bb5dbc976ea8c9be138c Mon Sep 17 00:00:00 2001 From: Robert Richter Date: Wed, 21 Sep 2016 20:35:03 -0500 Subject: [PATCH 02/10] Make Gravatars identicons by default --- app/models/user.rb | 2 +- test/models/user_test.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index aeea6361..605fe076 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -61,7 +61,7 @@ class User < ActiveRecord::Base def image_url email_md5 = Digest::MD5.hexdigest(email.downcase) - "https://www.gravatar.com/avatar/#{email_md5}" + "https://www.gravatar.com/avatar/#{email_md5}?d=identicon" end private diff --git a/test/models/user_test.rb b/test/models/user_test.rb index 50f226d7..55d42fed 100644 --- a/test/models/user_test.rb +++ b/test/models/user_test.rb @@ -5,6 +5,6 @@ class UserTest < ActiveSupport::TestCase test 'user has a Gravatar profile image' do user = build(:user, email: 'profile.image.test@example.com') - assert_equal user.image_url, 'https://www.gravatar.com/avatar/d2fd00e79c471f49c33b6bcb6b08d08d' + assert_match 'https://www.gravatar.com/avatar/d2fd00e79c471f49c33b6bcb6b08d08d', user.image_url end end From 801a5fd55ff04ac352b49d63065f0b11c87809fa Mon Sep 17 00:00:00 2001 From: Robert Richter Date: Wed, 21 Sep 2016 20:37:44 -0500 Subject: [PATCH 03/10] Add user avatar to User page metadata --- app/models/user.rb | 5 +++-- app/views/users/show.html.erb | 7 +++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 605fe076..691097df 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -59,9 +59,10 @@ class User < ActiveRecord::Base ].sum end - def image_url + def image_url(size=80) email_md5 = Digest::MD5.hexdigest(email.downcase) - "https://www.gravatar.com/avatar/#{email_md5}?d=identicon" + # 80px is Gravatar's default size + "https://www.gravatar.com/avatar/#{email_md5}?d=identicon&s=#{size}" end private diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index db0a0e34..bb711360 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -1,12 +1,15 @@