class Pry::Helpers::Table
Attributes
column_count[R]
items[R]
Public Class Methods
new(items, args, pry_instance = Pry.new)
click to toggle source
# File lib/pry/helpers/table.rb, line 37 def initialize(items, args, pry_instance = Pry.new) @column_count = args[:column_count] @config = pry_instance.config self.items = items end
Public Instance Methods
==(other)
click to toggle source
# File lib/pry/helpers/table.rb, line 81 def ==(other) items == other.to_a end
column_count=(count)
click to toggle source
# File lib/pry/helpers/table.rb, line 68 def column_count=(count) @column_count = count _recolumn end
columns()
click to toggle source
# File lib/pry/helpers/table.rb, line 77 def columns @rows_without_colors.transpose end
fits_on_line?(line_length)
click to toggle source
# File lib/pry/helpers/table.rb, line 73 def fits_on_line?(line_length) _max_width(rows_to_s(:no_color)) <= line_length end
items=(items)
click to toggle source
# File lib/pry/helpers/table.rb, line 62 def items=(items) @items = items _rebuild_colorless_cache _recolumn end
rows_to_s(style = :color_on)
click to toggle source
# 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()
click to toggle source
# File lib/pry/helpers/table.rb, line 85 def to_a items.to_a end
to_s()
click to toggle source
# File lib/pry/helpers/table.rb, line 43 def to_s rows_to_s.join("\n") end
Private Instance Methods
_max_width(things)
click to toggle source
# File lib/pry/helpers/table.rb, line 91 def _max_width(things) things.compact.map(&:size).max || 0 end
_rebuild_colorless_cache()
click to toggle source
# 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)
click to toggle source
# File lib/pry/helpers/table.rb, line 116 def _recall_color_for(thing) @colorless_cache[thing] end
_recolumn()
click to toggle source
# 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