Class: TTY::Logger::Formatters::Text
- Inherits:
-
Object
- Object
- TTY::Logger::Formatters::Text
- Defined in:
- lib/tty/logger/formatters/text.rb
Overview
Format data suitable for text reading
Constant Summary collapse
- SPACE =
" "- LPAREN =
"("- RPAREN =
")"- LBRACE =
"{"- RBRACE =
"}"- LBRACKET =
"["- RBRACKET =
"]"- ELLIPSIS =
"..."- LITERAL_TRUE =
"true"- LITERAL_FALSE =
"false"- LITERAL_NIL =
"nil"- SINGLE_QUOTE_REGEX =
/'/.freeze
- ESCAPE_DOUBLE_QUOTE =
"\""- ESCAPE_STR_REGEX =
/[ ="|{}()\[\]^$+*?.-]/.freeze
- NUM_REGEX =
/^-?\d*(?:\.\d+)?\d+$/.freeze
Instance Method Summary collapse
-
#dump(obj, max_bytes: 2**12, max_depth: 3) ⇒ String
Dump data in a single formatted line.
Instance Method Details
#dump(obj, max_bytes: 2**12, max_depth: 3) ⇒ String
Dump data in a single formatted line
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/tty/logger/formatters/text.rb', line 32 def dump(obj, max_bytes: 2**12, max_depth: 3) bytesize = 0 line = obj.each_with_object([]) do |(k, v), acc| str = "#{dump_key(k)}=#{dump_val(v, max_depth)}" items = acc.size - 1 if bytesize + str.bytesize + items > max_bytes if bytesize + items + (acc[-1].bytesize - ELLIPSIS.bytesize) > max_bytes acc.pop end acc << ELLIPSIS break acc else bytesize += str.bytesize acc << str end end line.join(SPACE) end |