diff options
author | Arthur Schreiber <schreiber.arthur@gmail.com> | 2012-04-14 00:46:11 +0200 |
---|---|---|
committer | Arthur Schreiber <schreiber.arthur@gmail.com> | 2012-04-14 12:38:12 +0200 |
commit | c530543c1a2db47866f3b695f46b57b043c01d97 (patch) | |
tree | 2db2758aae4b47abe7da5a6a8decc735178e0a94 /app/models/commit.rb | |
parent | a1d59d8053303a2c96f889aa17bfff7d4a48b857 (diff) | |
download | gitlab-ce-c530543c1a2db47866f3b695f46b57b043c01d97.tar.gz |
Nicer commit headers.
Diffstat (limited to 'app/models/commit.rb')
-rw-r--r-- | app/models/commit.rb | 35 |
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] << "…".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) + "…".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 |