OSDN Git Service

Rename changed_mr_email to reassigned_mr_email & make resque friendly
authorRobb Kidd <robb@thekidds.org>
Tue, 15 May 2012 03:42:47 +0000 (23:42 -0400)
committerRobb Kidd <robb@thekidds.org>
Wed, 16 May 2012 02:37:33 +0000 (22:37 -0400)
#changed_merge_request_email was really sending emails about merge
request reassignments. Updated method name to reflect that.

Update method to take ids and then perform #finds itself during mailer
queue worker kick-off.

app/mailers/notify.rb
app/views/notify/reassigned_merge_request_email.html.haml [moved from app/views/notify/changed_merge_request_email.html.haml with 87% similarity]
spec/mailers/notify_spec.rb

index 875e83e..5e8af49 100644 (file)
@@ -58,13 +58,12 @@ class Notify < ActionMailer::Base
     @project = @merge_request.project
     mail(:to => @user.email, :subject => "gitlab | new merge request | #{@merge_request.title} ")
   end
-  
-  def changed_merge_request_email(user, merge_request)
-    @user = user
-    @merge_request = MergeRequest.find(merge_request.id)
-    @assignee_was ||= User.find(@merge_request.assignee_id_was)
-    @project = @merge_request.project
-    mail(:to => @user['email'], :subject => "gitlab | merge request changed | #{@merge_request.title} ")
+
+  def reassigned_merge_request_email(recipient_id, merge_request_id, previous_assignee_id)
+    recipient = User.find(recipient_id)
+    @merge_request = MergeRequest.find(merge_request_id)
+    @previous_assignee ||= User.find(previous_assignee_id)
+    mail(:to => recipient.email, :subject => "gitlab | merge request changed | #{@merge_request.title} ")
   end
 
   def reassigned_issue_email(recipient_id, issue_id, previous_assignee_id)
@@ -5,12 +5,12 @@
       %td{:align => "left", :style => "padding: 20px 0 0;"}
         %h2{:style => "color:#646464; font-weight: bold; margin: 0; padding: 0; line-height: 26px; font-size: 18px; font-family: Helvetica, Arial, sans-serif; "}
           Reassigned Merge Request
-          = link_to truncate(@merge_request.title, :length => 16), project_merge_request_url(@project, @merge_request)
+          = link_to truncate(@merge_request.title, :length => 16), project_merge_request_url(@merge_request.project, @merge_request)
       %td{:style => "font-size: 1px; line-height: 1px;", :width => "21"}
     %tr
       %td{:style => "font-size: 1px; line-height: 1px;", :width => "21"}
       %td{:style => "padding: 15px 0 15px;", :valign => "top"}
         %p{:style => "color:#767676; font-weight: normal; margin: 0; padding: 0; line-height: 20px; font-size: 12px;font-family: Helvetica, Arial, sans-serif; "}
-          Assignee changed from #{@assignee_was.name} to #{@merge_request.assignee.name}
+          Assignee changed from #{@previous_assignee.name} to #{@merge_request.assignee_name}
       %td
 
index 8c89608..7211f12 100644 (file)
@@ -123,9 +123,9 @@ describe Notify do
         end
 
         describe 'that are reassigned' do
-          before(:each) { merge_request.stub(:assignee_id_was).and_return(old_assignee.id) }
+          before(:each) { merge_request.stub(:assignee_id_was).and_return(previous_assignee.id) }
 
-          subject { Notify.changed_merge_request_email(recipient, merge_request) }
+          subject { Notify.reassigned_merge_request_email(recipient.id, merge_request.id, previous_assignee.id) }
 
           it_behaves_like 'a multiple recipients email'
 
@@ -134,7 +134,7 @@ describe Notify do
           end
 
           it 'contains the name of the previous assignee' do
-            should have_body_text /#{old_assignee.name}/
+            should have_body_text /#{previous_assignee.name}/
           end
 
           it 'contains the name of the new assignee' do