From f9856517db542faec7f5fbb7cd05abf444a80a75 Mon Sep 17 00:00:00 2001
From: Raphael <raphael@joindiaspora.com>
Date: Fri, 2 Jul 2010 14:34:58 -0700
Subject: [PATCH] Post deletion now deletes comments

---
 app/models/post.rb       |  5 +++++
 spec/models/post_spec.rb | 10 ++++++++++
 2 files changed, 15 insertions(+)

diff --git a/app/models/post.rb b/app/models/post.rb
index d6d8e5600f..30c3bb82cb 100644
--- a/app/models/post.rb
+++ b/app/models/post.rb
@@ -23,6 +23,7 @@ class Post
   after_save :notify_friends
  
   before_destroy :propagate_delete 
+  after_destroy :destroy_comments
 
   def self.stream
     Post.sort(:created_at.desc).all
@@ -43,6 +44,10 @@ class Post
 
 
   protected
+  def destroy_comments
+    comments.each{|c| c.destroy}
+  end
+  
   def propagate_delete
     Retraction.for(self).notify_friends
   end
diff --git a/spec/models/post_spec.rb b/spec/models/post_spec.rb
index 93deadc990..091edd71f7 100644
--- a/spec/models/post_spec.rb
+++ b/spec/models/post_spec.rb
@@ -83,5 +83,15 @@ describe Post do
       (message.to_xml.to_s.include? @user.email).should == true
     end
   end
+
+  describe 'deletion' do
+    it 'should delete a posts comments on delete' do
+      post = Factory.create(:status_message, :person => @user)
+      @user.comment "hey", :on=> post
+      post.destroy
+      Post.all(:id => post.id).empty?.should == true
+      Comment.all(:text => "hey").empty?.should == true
+    end
+  end
 end
 
-- 
GitLab