scinote-web/app/helpers/string_utility.rb

14 lines
400 B
Ruby
Raw Normal View History

module StringUtility
2018-05-17 17:21:34 +08:00
def ellipsize(
string,
minimum_length = Constants::MAX_NAME_TRUNCATION,
edge_length = Constants::MAX_EDGE_LENGTH
)
length = string.length
return string if length < minimum_length || length <= edge_length * 2
edge = '.' * edge_length
mid_length = length - edge_length * 2
string.gsub(/(#{edge}).{#{mid_length},}(#{edge})/, '\1...\2')
end
end