summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiyad Preukschas <riyad@informatik.uni-bremen.de>2012-10-29 15:49:37 +0100
committerRiyad Preukschas <riyad@informatik.uni-bremen.de>2012-12-03 22:51:55 +0100
commitfc1c250d404902c9b34ccd28d9cfea7108f80831 (patch)
tree26d56020a4a352fa68987f19058eb186bb26c6d6
parent63dac843fdad0697c147b3c994500c84bc66f100 (diff)
downloadgitlab-ce-fc1c250d404902c9b34ccd28d9cfea7108f80831.tar.gz
Reorder Note methods and add helpers
-rw-r--r--app/models/note.rb85
1 files changed, 58 insertions, 27 deletions
diff --git a/app/models/note.rb b/app/models/note.rb
index da15a173566..6708fbc3758 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