summaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
authorMarius Mathiesen <marius@shortcut.no>2010-02-01 13:40:20 +0100
committerMarius Mathiesen <marius@shortcut.no>2010-02-01 13:40:20 +0100
commit3c10e23d548ae99645cb04e1509cfa07b51d1a08 (patch)
treefd71e7c53e425ead347cc56ee834927a36630ea1 /app/models
parent33c6095805d5c808081a030dab4405ea9af126f0 (diff)
downloadgitorious-mainline-outdated-3c10e23d548ae99645cb04e1509cfa07b51d1a08.zip
gitorious-mainline-outdated-3c10e23d548ae99645cb04e1509cfa07b51d1a08.tar.gz
gitorious-mainline-outdated-3c10e23d548ae99645cb04e1509cfa07b51d1a08.tar.bz2
Send a message to MQ when a MergeRequestVersion is deleted in order for a processor to delete the tracking branch.
Diffstat (limited to 'app/models')
-rw-r--r--app/models/merge_request_version.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/app/models/merge_request_version.rb b/app/models/merge_request_version.rb
index 98ffae9..cc6d65a 100644
--- a/app/models/merge_request_version.rb
+++ b/app/models/merge_request_version.rb
@@ -17,8 +17,11 @@
#++
class MergeRequestVersion < ActiveRecord::Base
+ include ActiveMessaging::MessageSender
+
belongs_to :merge_request
has_many :comments, :as => :target, :include => :user
+ before_destroy :schedule_branch_deletion
def affected_commits
Rails.cache.fetch(cache_key + '/affected_commits') do
@@ -106,6 +109,21 @@ class MergeRequestVersion < ActiveRecord::Base
end
end
+ # The unserialized message that is sent to the message queue
+ # for deleting the tracking branch
+ def branch_deletion_message
+ {
+ :source_repository_path => merge_request.source_repository.full_repository_path,
+ :target_repository_path => merge_request.target_repository.full_repository_path,
+ :target_branch_name => merge_request.merge_branch_name(version)
+ }
+ end
+
+ def schedule_branch_deletion
+ message = branch_deletion_message.to_json
+ publish :merge_request_version_deletion, message
+ end
+
private
# Returns a string representation of a sha range
def sha_range_string(string_or_range)