Method: DebugIsTruncated#truncate
- Defined in:
- src/ruby/pb/test/server.rb
#truncate(s, truncate_at, options = {}) ⇒ Object
Truncates a given text after a given length if text is longer than length:
'Once upon a time in a world far far away'.truncate(27)
# => "Once upon a time in a wo..."
Pass a string or regexp :separator to truncate text at a natural break:
'Once upon a time in a world far far away'.truncate(27, separator: ' ')
# => "Once upon a time in a..."
'Once upon a time in a world far far away'.truncate(27, separator: /\s/)
# => "Once upon a time in a..."
The last characters will be replaced with the :omission string (defaults to “…”) for a total length not exceeding length:
'And they found that many people were sleeping better.'.truncate(25, omission: '... (continued)')
# => "And they f... (continued)"
66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'src/ruby/pb/test/server.rb', line 66 def truncate(s, truncate_at, = {}) return s unless s.length > truncate_at omission = [:omission] || '...' with_extra_room = truncate_at - omission.length stop = \ if [:separator] rindex([:separator], with_extra_room) || with_extra_room else with_extra_room end "#{s[0, stop]}#{omission}" end |