scinote-web/app/helpers/string_utility.rb

25 lines
765 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
def to_filesystems_compatible_filename(file_or_folder_name)
file_or_folder_name = file_or_folder_name.truncate(
Constants::EXPORTED_FILENAME_TRUNCATION_LENGTH,
omission: ''
)
file_or_folder_name.strip
.sub(/^[.-]*/, '')
.sub(/\.*$/, '')
.gsub(/[^\w',;. -]/, '_')
end
end