Class: DebugIsTruncated
- Inherits:
-
Logger
- Object
- Logger
- DebugIsTruncated
- Defined in:
- src/ruby/pb/test/server.rb
Overview
DebugIsTruncated extends the default Logger to truncate debug messages
Instance Method Summary collapse
- #debug(s) ⇒ Object
-
#truncate(s, truncate_at, options = {}) ⇒ Object
Truncates a given
text
after a givenlength
iftext
is longer thanlength
:.
Instance Method Details
#debug(s) ⇒ Object
44 45 46 |
# File 'src/ruby/pb/test/server.rb', line 44 def debug(s) super(truncate(s, 1024)) end |
#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 |