Class: Pry::Helpers::Table
Instance Attribute Summary collapse
-
#column_count ⇒ Object
Returns the value of attribute column_count.
-
#items ⇒ Object
Returns the value of attribute items.
Instance Method Summary collapse
- #==(other) ⇒ Object
- #_max_width(things) ⇒ Object private
- #_rebuild_colorless_cache ⇒ Object private
- #_recall_color_for(thing) ⇒ Object private
- #_recolumn ⇒ Object private
- #columns ⇒ Object
- #fits_on_line?(line_length) ⇒ Boolean
-
#initialize(items, args, pry_instance = Pry.new) ⇒ Table
constructor
A new instance of Table.
- #rows_to_s(style = :color_on) ⇒ Object
- #to_a ⇒ Object
- #to_s ⇒ Object
Constructor Details
Instance Attribute Details
#column_count ⇒ Object
Returns the value of attribute column_count.
36 37 38 |
# File 'lib/pry/helpers/table.rb', line 36 def column_count @column_count end |
#items ⇒ Object
Returns the value of attribute items.
36 37 38 |
# File 'lib/pry/helpers/table.rb', line 36 def items @items end |
Instance Method Details
#==(other) ⇒ Object
81 82 83 |
# File 'lib/pry/helpers/table.rb', line 81 def ==(other) items == other.to_a end |
#_max_width(things) ⇒ Object (private)
91 92 93 |
# File 'lib/pry/helpers/table.rb', line 91 def _max_width(things) things.compact.map(&:size).max || 0 end |
#_rebuild_colorless_cache ⇒ Object (private)
95 96 97 98 99 100 101 102 103 |
# File 'lib/pry/helpers/table.rb', line 95 def _rebuild_colorless_cache @colorless_cache = {} @plain_items = [] items.map do |e| plain = Pry::Helpers::Text.strip_color(e) @colorless_cache[plain] = e @plain_items << plain end end |
#_recall_color_for(thing) ⇒ Object (private)
116 117 118 |
# File 'lib/pry/helpers/table.rb', line 116 def _recall_color_for(thing) @colorless_cache[thing] end |
#_recolumn ⇒ Object (private)
105 106 107 108 109 110 111 112 113 114 |
# File 'lib/pry/helpers/table.rb', line 105 def _recolumn @rows_without_colors = [] return if items.size.zero? row_count = (items.size.to_f / column_count).ceil row_count.times do |i| row_indices = (0...column_count).map { |e| row_count * e + i } @rows_without_colors << row_indices.map { |e| @plain_items[e] } end end |
#columns ⇒ Object
77 78 79 |
# File 'lib/pry/helpers/table.rb', line 77 def columns @rows_without_colors.transpose end |
#fits_on_line?(line_length) ⇒ Boolean
73 74 75 |
# File 'lib/pry/helpers/table.rb', line 73 def fits_on_line?(line_length) _max_width(rows_to_s(:no_color)) <= line_length end |
#rows_to_s(style = :color_on) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/pry/helpers/table.rb', line 47 def rows_to_s(style = :color_on) widths = columns.map { |e| _max_width(e) } @rows_without_colors.map do |r| padded = [] r.each_with_index do |e, i| next unless e item = e.ljust(widths[i]) item.sub! e, _recall_color_for(e) if style == :color_on padded << item end padded.join(@config.ls.separator) end end |
#to_a ⇒ Object
85 86 87 |
# File 'lib/pry/helpers/table.rb', line 85 def to_a items.to_a end |
#to_s ⇒ Object
43 44 45 |
# File 'lib/pry/helpers/table.rb', line 43 def to_s rows_to_s.join("\n") end |