diff options
author | Marius Mathiesen <marius@shortcut.no> | 2009-12-10 13:26:32 +0100 |
---|---|---|
committer | Marius Mathiesen <marius@shortcut.no> | 2009-12-10 13:28:28 +0100 |
commit | 28bace545fd5590c66a4a3c4b45a99b7a9d31270 (patch) | |
tree | 9862256371aa2be9e1620c70f2851663ba65a1cb | |
parent | 61cfb16a75e65f085cd3480fe954472e63c0d207 (diff) | |
download | gitorious-mainline-outdated-28bace545fd5590c66a4a3c4b45a99b7a9d31270.zip gitorious-mainline-outdated-28bace545fd5590c66a4a3c4b45a99b7a9d31270.tar.gz gitorious-mainline-outdated-28bace545fd5590c66a4a3c4b45a99b7a9d31270.tar.bz2 |
Move creation of favorites into controller. Also adding merge request to owner's favorites upon creation
-rw-r--r-- | app/controllers/favorites_controller.rb | 2 | ||||
-rw-r--r-- | app/models/favorite.rb | 11 | ||||
-rw-r--r-- | app/models/merge_request.rb | 7 | ||||
-rw-r--r-- | test/unit/favorite_test.rb | 13 | ||||
-rw-r--r-- | test/unit/merge_request_test.rb | 6 |
5 files changed, 18 insertions, 21 deletions
diff --git a/app/controllers/favorites_controller.rb b/app/controllers/favorites_controller.rb index 9953265..c2775e8 100644 --- a/app/controllers/favorites_controller.rb +++ b/app/controllers/favorites_controller.rb @@ -22,6 +22,7 @@ class FavoritesController < ApplicationController def create @favorite = @watchable.watched_by!(current_user) + @favorite.create_event respond_to do |wants| wants.html { flash[:notice] = "You are now watching this #{@watchable.class.name.downcase}" @@ -60,3 +61,4 @@ class FavoritesController < ApplicationController @watchable = watchable_class.find(params[:watchable_id]) end end +
\ No newline at end of file diff --git a/app/models/favorite.rb b/app/models/favorite.rb index 1cec3f9..e75845b 100644 --- a/app/models/favorite.rb +++ b/app/models/favorite.rb @@ -22,7 +22,6 @@ class Favorite < ActiveRecord::Base validates_presence_of :user_id, :watchable_id, :watchable_type validates_uniqueness_of :user_id, :scope => [:watchable_id, :watchable_type] - after_create :create_event def event_exists? !Event.count(:conditions => event_options).zero? @@ -45,16 +44,8 @@ class Favorite < ActiveRecord::Base end end - def skip_events=(skip) - @skip_events = skip - end - - def skip_events? - @skip_events - end - def event_should_be_created? - !event_exists? && !skip_events? + !event_exists? end def create_event diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 9e8c8bb..25cb426 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -35,6 +35,7 @@ class MergeRequest < ActiveRecord::Base before_destroy :nullify_messages after_destroy :delete_tracking_branches + after_create :add_to_creators_favorites before_validation_on_create :set_sequence_number @@ -384,7 +385,7 @@ class MergeRequest < ActiveRecord::Base end def add_to_reviewers_favorites(reviewer) - reviewer.favorites.create(:watchable => self, :skip_events => true) + reviewer.favorites.create(:watchable => self) end def add_creation_event(owner, user) @@ -633,4 +634,8 @@ class MergeRequest < ActiveRecord::Base self.sequence_number = target_repository.next_merge_request_sequence_number end end + + def add_to_creators_favorites + user.favorites.create(:watchable => self) + end end diff --git a/test/unit/favorite_test.rb b/test/unit/favorite_test.rb index 6970c3c..0b1b9f8 100644 --- a/test/unit/favorite_test.rb +++ b/test/unit/favorite_test.rb @@ -68,29 +68,22 @@ class FavoriteTest < ActiveSupport::TestCase should "create an event when a favorite is created" do favorite = @user.favorites.build(:watchable => @repo) assert !favorite.event_exists? - assert favorite.save + favorite.create_event assert_not_nil(favorite_event = @user.events_as_target.last) assert favorite.event_exists? end should "only create an event the first time" do favorite = @user.favorites.create(:watchable => @repo) + favorite.create_event assert favorite.event_exists? favorite.destroy new_favorite = @user.favorites.build(:watchable => @repo) assert new_favorite.event_exists? assert_incremented_by @user.events_as_target, :count, 0 do - assert new_favorite.save + new_favorite.create_event end end - - should "support a skip_events setter" do - favorite = @user.favorites.build(:skip_events => true, :watchable => @repo) - assert favorite.skip_events? - assert !favorite.event_should_be_created? - assert favorite.save - assert !favorite.event_exists? - end end context "Watching merge requests" do diff --git a/test/unit/merge_request_test.rb b/test/unit/merge_request_test.rb index 9c206e5..0b93f7c 100644 --- a/test/unit/merge_request_test.rb +++ b/test/unit/merge_request_test.rb @@ -830,6 +830,12 @@ class MergeRequestTest < ActiveSupport::TestCase @merge_request.notify_subscribers_about_creation end end + + should "be added to creators favorites" do + assert_incremented_by(@user.favorites, :size, 1) { + @merge_request.save + } + end end |