Commit 6e9ccb7

mo khan <mo@mokhan.ca>
2015-05-22 18:08:46
add gravatar link.
1 parent f652fee
Changed files (4)
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&amp;d=mm\" />"
+      expect(gravatar_for(user)).to eql(expected)
+    end
+  end
+end