Commit fc1c250d404902c9b34ccd28d9cfea7108f80831
1 parent
63dac843
Exists in
master
and in
4 other branches
Reorder Note methods and add helpers
Showing
1 changed file
with
58 additions
and
27 deletions
Show diff stats
app/models/note.rb
@@ -18,7 +18,6 @@ require 'carrierwave/orm/activerecord' | @@ -18,7 +18,6 @@ require 'carrierwave/orm/activerecord' | ||
18 | require 'file_size_validator' | 18 | require 'file_size_validator' |
19 | 19 | ||
20 | class Note < ActiveRecord::Base | 20 | class Note < ActiveRecord::Base |
21 | - | ||
22 | attr_accessible :note, :noteable, :noteable_id, :noteable_type, :project_id, | 21 | attr_accessible :note, :noteable, :noteable_id, :noteable_type, :project_id, |
23 | :attachment, :line_code | 22 | :attachment, :line_code |
24 | 23 | ||
@@ -55,12 +54,58 @@ class Note < ActiveRecord::Base | @@ -55,12 +54,58 @@ class Note < ActiveRecord::Base | ||
55 | }, without_protection: true) | 54 | }, without_protection: true) |
56 | end | 55 | end |
57 | 56 | ||
58 | - def notify | ||
59 | - @notify ||= false | 57 | + def commit_author |
58 | + @commit_author ||= | ||
59 | + project.users.find_by_email(noteable.author_email) || | ||
60 | + project.users.find_by_name(noteable.author_name) | ||
61 | + rescue | ||
62 | + nil | ||
60 | end | 63 | end |
61 | 64 | ||
62 | - def notify_author | ||
63 | - @notify_author ||= false | 65 | + def diff |
66 | + noteable.diffs[diff_file_index] | ||
67 | + end | ||
68 | + | ||
69 | + def diff_file_index | ||
70 | + line_code.split('_')[0].to_i | ||
71 | + end | ||
72 | + | ||
73 | + def diff_file_name | ||
74 | + diff.b_path | ||
75 | + end | ||
76 | + | ||
77 | + def diff_new_line | ||
78 | + line_code.split('_')[2].to_i | ||
79 | + end | ||
80 | + | ||
81 | + def discussion_id | ||
82 | + @discussion_id ||= [noteable_type, noteable_id, line_code].join.underscore.to_sym | ||
83 | + end | ||
84 | + | ||
85 | + # Returns true if this is a downvote note, | ||
86 | + # otherwise false is returned | ||
87 | + def downvote? | ||
88 | + note.start_with?('-1') || note.start_with?(':-1:') | ||
89 | + end | ||
90 | + | ||
91 | + def for_commit? | ||
92 | + noteable_type == "Commit" | ||
93 | + end | ||
94 | + | ||
95 | + def for_commit_diff_line? | ||
96 | + for_commit? && for_diff_line? | ||
97 | + end | ||
98 | + | ||
99 | + def for_diff_line? | ||
100 | + line_code.present? | ||
101 | + end | ||
102 | + | ||
103 | + def for_merge_request? | ||
104 | + noteable_type == "MergeRequest" | ||
105 | + end | ||
106 | + | ||
107 | + def for_merge_request_diff_line? | ||
108 | + for_merge_request? && for_diff_line? | ||
64 | end | 109 | end |
65 | 110 | ||
66 | # override to return commits, which are not active record | 111 | # override to return commits, which are not active record |
@@ -76,6 +121,14 @@ class Note < ActiveRecord::Base | @@ -76,6 +121,14 @@ class Note < ActiveRecord::Base | ||
76 | nil | 121 | nil |
77 | end | 122 | end |
78 | 123 | ||
124 | + def notify | ||
125 | + @notify ||= false | ||
126 | + end | ||
127 | + | ||
128 | + def notify_author | ||
129 | + @notify_author ||= false | ||
130 | + end | ||
131 | + | ||
79 | # Check if we can notify commit author | 132 | # Check if we can notify commit author |
80 | # with email about our comment | 133 | # with email about our comment |
81 | # | 134 | # |
@@ -94,31 +147,9 @@ class Note < ActiveRecord::Base | @@ -94,31 +147,9 @@ class Note < ActiveRecord::Base | ||
94 | commit_author.email != user.email | 147 | commit_author.email != user.email |
95 | end | 148 | end |
96 | 149 | ||
97 | - def for_commit? | ||
98 | - noteable_type == "Commit" | ||
99 | - end | ||
100 | - | ||
101 | - def for_diff_line? | ||
102 | - line_code.present? | ||
103 | - end | ||
104 | - | ||
105 | - def commit_author | ||
106 | - @commit_author ||= | ||
107 | - project.users.find_by_email(noteable.author_email) || | ||
108 | - project.users.find_by_name(noteable.author_name) | ||
109 | - rescue | ||
110 | - nil | ||
111 | - end | ||
112 | - | ||
113 | # Returns true if this is an upvote note, | 150 | # Returns true if this is an upvote note, |
114 | # otherwise false is returned | 151 | # otherwise false is returned |
115 | def upvote? | 152 | def upvote? |
116 | note.start_with?('+1') || note.start_with?(':+1:') | 153 | note.start_with?('+1') || note.start_with?(':+1:') |
117 | end | 154 | end |
118 | - | ||
119 | - # Returns true if this is a downvote note, | ||
120 | - # otherwise false is returned | ||
121 | - def downvote? | ||
122 | - note.start_with?('-1') || note.start_with?(':-1:') | ||
123 | - end | ||
124 | end | 155 | end |