From cddd55bd889f7719bc9de95bcdc46b0bc16fed9b Mon Sep 17 00:00:00 2001 From: "Z.J. van de Weg" Date: Mon, 21 Nov 2016 22:27:51 +0100 Subject: Truncate long messages A poor mans truncator, so I don't have a heavy module to mixin. --- lib/mattermost/presenter.rb | 16 ++++++++++++---- 1 file 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 -- cgit v1.2.1