Commit 6e9ccb7
Changed files (4)
app
spec
helpers
app/helpers/application_helper.rb
@@ -1,2 +1,5 @@
module ApplicationHelper
+ def gravatar_for(user, size: 260)
+ image_tag("https://secure.gravatar.com/avatar/#{user.gravatar_id}?s=#{size}&d=mm", alt: user.username, class: 'gravatar')
+ end
end
app/models/user.rb
@@ -7,6 +7,10 @@ class User < ActiveRecord::Base
validates :email, presence: true, email: true, uniqueness: true
validates_acceptance_of :terms_and_conditions
+ def gravatar_id
+ Digest::MD5::hexdigest(email.downcase)
+ end
+
def self.authenticate(username,password)
if user = User.where("email = :email OR username = :username", username: username, email: username).first
user.authenticate(password)
app/views/layouts/application.html.erb
@@ -60,17 +60,15 @@
<li><a href="#">Main Item 2</a></li>
<li class="divider"></li>
<li class="has-dropdown">
- <a href="#">Main Item 3</a>
+ <a href="#"><%= gravatar_for(@current_user, size: 16) %> <%= @current_user.username %></a>
<ul class="dropdown">
<li><a href="#">Dropdown Option</a></li>
<li><a href="#">Dropdown Option</a></li>
<li><a href="#">Dropdown Option</a></li>
<li class="divider"></li>
- <li><a href="#">See all →</a></li>
+ <li><%= link_to "Log Out", session_path('me'), method: :delete %></li>
</ul>
</li>
- <li class="divider"></li>
- <li><%# link_to "Logout", session_destroy_path(current_user), method: :delete %></li>
</ul>
</section>
</nav>
spec/helpers/application_helper_spec.rb
@@ -0,0 +1,12 @@
+require "rails_helper"
+
+describe ApplicationHelper do
+ describe "#gravatar_for" do
+ let(:user) { build(:user) }
+
+ it "returns the gravatar image tag" do
+ expected = "<img alt=\"#{user.username}\" class=\"gravatar\" src=\"https://secure.gravatar.com/avatar/#{user.gravatar_id}?s=260&d=mm\" />"
+ expect(gravatar_for(user)).to eql(expected)
+ end
+ end
+end