module ShortFilename def short_filename(filename, limit_chars = 43) extname = File.extname(filename) basename = File.basename(filename,extname) return shrink(basename, extname, limit_chars) + extname end def short_filename_upper_ext(filename, limit_chars = 43) extname = File.extname(filename) display_name = shrink(File.basename(filename, extname), extname, limit_chars) return display_name + " - " + extname.upcase.delete(".") if not extname.empty? else display_name end def shrink(filename, extname, limit_chars) return filename if filename.size <= limit_chars str_complement = '(...)' return filename[0..(limit_chars - extname.size - str_complement.size - 1)] + str_complement end end