tj / terminal-table

Ruby ASCII Table Generator, simple and feature rich.
MIT License
1.53k stars 121 forks source link

Replace non unicode characters to avoid crashes #131

Open lacostej opened 8 months ago

lacostej commented 8 months ago

This was encountered in https://github.com/fastlane/fastlane/issues/21852

Without this, Terminal::Table.new can crash with

..............F.......................................

Failures:

  1) Terminal::Table should replace illegal unicode characters
     Failure/Error: @value.to_s.split(/\n/)

     ArgumentError:
       invalid byte sequence in UTF-8
     # ./lib/terminal-table/cell.rb:51:in `split'
     # ./lib/terminal-table/cell.rb:51:in `lines'
     # ./lib/terminal-table/cell.rb:71:in `value_for_column_width_recalc'
     # ./lib/terminal-table/table.rb:233:in `block (2 levels) in recalc_column_widths'
     # ./lib/terminal-table/table.rb:232:in `each'
     # ./lib/terminal-table/table.rb:232:in `block in recalc_column_widths'
     # ./lib/terminal-table/table.rb:230:in `each'
     # ./lib/terminal-table/table.rb:230:in `recalc_column_widths'
     # ./lib/terminal-table/table.rb:368:in `column_widths'
     # ./lib/terminal-table/table.rb:97:in `column_width'
     # ./lib/terminal-table/separator.rb:33:in `block in render'
     # ./lib/terminal-table/separator.rb:32:in `each'
     # ./lib/terminal-table/separator.rb:32:in `render'
     # ./lib/terminal-table/table.rb:171:in `block in render'
     # ./lib/terminal-table/table.rb:171:in `map'
     # ./lib/terminal-table/table.rb:171:in `render'
     # ./spec/table_spec.rb:126:in `block (2 levels) in <module:Terminal>'

Finished in 0.0141 seconds (files took 0.07159 seconds to load)
54 examples, 1 failure