summaryrefslogtreecommitdiff
path: root/app/models/commit.rb
diff options
context:
space:
mode:
authorArthur Schreiber <schreiber.arthur@gmail.com>2012-04-14 00:46:11 +0200
committerArthur Schreiber <schreiber.arthur@gmail.com>2012-04-14 12:38:12 +0200
commitc530543c1a2db47866f3b695f46b57b043c01d97 (patch)
tree2db2758aae4b47abe7da5a6a8decc735178e0a94 /app/models/commit.rb
parenta1d59d8053303a2c96f889aa17bfff7d4a48b857 (diff)
downloadgitlab-ce-c530543c1a2db47866f3b695f46b57b043c01d97.tar.gz
Nicer commit headers.
Diffstat (limited to 'app/models/commit.rb')
-rw-r--r--app/models/commit.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/app/models/commit.rb b/app/models/commit.rb
index 76064b05670..343235e58af 100644
--- a/app/models/commit.rb
+++ b/app/models/commit.rb
@@ -106,6 +106,41 @@ class Commit
utf8 author.name
end
+ # Returns the commits title.
+ #
+ # Usually, the commit title is the first line of the commit message.
+ # In case this first line is longer than 80 characters, it is cut off
+ # after 70 characters and ellipses (`&hellp;`) are appended.
+ #
+ # @todo This might be better placed in a view helper.
+ def title
+ title_end = safe_message.index(/\n/)
+ if (!title_end && safe_message.length > 80) || (title_end && title_end > 80)
+ safe_message[0..69] << "&hellip;".html_safe
+ else
+ safe_message.split(/\n/, 2).first
+ end
+ end
+
+ # Returns the commits description
+ #
+ # cut off, ellipses (`&hellp;`) are prepended to the commit message.
+ #
+ # @todo This might be better placed in a view helper.
+ def description
+ title_end = safe_message.index(/\n/)
+ if (!title_end && safe_message.length > 80) || (title_end && title_end > 80)
+ "&hellip;".html_safe << safe_message[70..-1]
+ else
+ safe_message.split(/\n/, 2)[1].try(:chomp)
+ end
+ end
+
+ # Was this commit committed by a different person than the original author?
+ def different_committer?
+ author_name != committer_name || author_email != committer_email
+ end
+
def committer_name
utf8 committer.name
end