mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-12-29 03:35:25 +08:00
13 lines
400 B
Ruby
13 lines
400 B
Ruby
module StringUtility
|
|
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
|