From fc1c250d404902c9b34ccd28d9cfea7108f80831 Mon Sep 17 00:00:00 2001 From: Riyad Preukschas Date: Mon, 29 Oct 2012 15:49:37 +0100 Subject: [PATCH] Reorder Note methods and add helpers --- app/models/note.rb | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 58 insertions(+), 27 deletions(-) diff --git a/app/models/note.rb b/app/models/note.rb index da15a17..6708fbc 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -18,7 +18,6 @@ require 'carrierwave/orm/activerecord' require 'file_size_validator' class Note < ActiveRecord::Base - attr_accessible :note, :noteable, :noteable_id, :noteable_type, :project_id, :attachment, :line_code @@ -55,12 +54,58 @@ class Note < ActiveRecord::Base }, without_protection: true) end - def notify - @notify ||= false + def commit_author + @commit_author ||= + project.users.find_by_email(noteable.author_email) || + project.users.find_by_name(noteable.author_name) + rescue + nil end - def notify_author - @notify_author ||= false + def diff + noteable.diffs[diff_file_index] + end + + def diff_file_index + line_code.split('_')[0].to_i + end + + def diff_file_name + diff.b_path + end + + def diff_new_line + line_code.split('_')[2].to_i + end + + def discussion_id + @discussion_id ||= [noteable_type, noteable_id, line_code].join.underscore.to_sym + end + + # Returns true if this is a downvote note, + # otherwise false is returned + def downvote? + note.start_with?('-1') || note.start_with?(':-1:') + end + + def for_commit? + noteable_type == "Commit" + end + + def for_commit_diff_line? + for_commit? && for_diff_line? + end + + def for_diff_line? + line_code.present? + end + + def for_merge_request? + noteable_type == "MergeRequest" + end + + def for_merge_request_diff_line? + for_merge_request? && for_diff_line? end # override to return commits, which are not active record @@ -76,6 +121,14 @@ class Note < ActiveRecord::Base nil end + def notify + @notify ||= false + end + + def notify_author + @notify_author ||= false + end + # Check if we can notify commit author # with email about our comment # @@ -94,31 +147,9 @@ class Note < ActiveRecord::Base commit_author.email != user.email end - def for_commit? - noteable_type == "Commit" - end - - def for_diff_line? - line_code.present? - end - - def commit_author - @commit_author ||= - project.users.find_by_email(noteable.author_email) || - project.users.find_by_name(noteable.author_name) - rescue - nil - end - # Returns true if this is an upvote note, # otherwise false is returned def upvote? note.start_with?('+1') || note.start_with?(':+1:') end - - # Returns true if this is a downvote note, - # otherwise false is returned - def downvote? - note.start_with?('-1') || note.start_with?(':-1:') - end end -- libgit2 0.21.2