summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZ.J. van de Weg <git@zjvandeweg.nl>2016-11-21 22:27:51 +0100
committerZ.J. van de Weg <git@zjvandeweg.nl>2016-11-21 22:27:51 +0100
commitcddd55bd889f7719bc9de95bcdc46b0bc16fed9b (patch)
tree4d2b78a7e0c127c51c9fc5ef0cea9bcb04ea9157
parent28f67a5d860ddad73abf71effc0f50c6b698c240 (diff)
downloadgitlab-ce-cddd55bd889f7719bc9de95bcdc46b0bc16fed9b.tar.gz
Truncate long messages
A poor mans truncator, so I don't have a heavy module to mixin.
-rw-r--r--lib/mattermost/presenter.rb16
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/mattermost/presenter.rb b/lib/mattermost/presenter.rb
index bfbb089eb02..39df73b73e0 100644
--- a/lib/mattermost/presenter.rb
+++ b/lib/mattermost/presenter.rb
@@ -53,8 +53,8 @@ module Mattermost
def single_resource(resource)
return error(resource) if resource.errors.any? || !resource.persisted?
- message = "### #{title(resource)}"
- message << "\n\n#{resource.description}" if resource.description
+ message = title(resource)
+ message << "\n\n#{truncate(resource.description, 128)}" if resource.description
in_channel_response(message)
end
@@ -74,14 +74,14 @@ module Mattermost
end
def title(resource)
- "[#{resource.to_reference} #{resource.title}](#{url(resource)})"
+ "#### [#{resource.to_reference} #{truncate(resource.title)}](#{url(resource)})"
end
def header_with_list(header, items)
message = [header]
items.each do |item|
- message << "- #{item}"
+ message << "- #{truncate(item)}"
end
message.join("\n")
@@ -112,6 +112,14 @@ module Mattermost
status: 200
}
end
+
+ def truncate(string, length = 32)
+ if string.length > length
+ string[0..length].rstrip + '...'
+ else
+ string
+ end
+ end
end
end
end