Class: BundleUpdateInteractive::CLI::Table

Inherits:
Object
  • Object
show all
Defined in:
lib/bundle_update_interactive/cli/table.rb

Constant Summary collapse

HEADERS =
["name", "from", nil, "to", "group", "url"].freeze

Instance Method Summary collapse

Constructor Details

#initialize(outdated_gems) ⇒ Table

Returns a new instance of Table.



9
10
11
12
13
14
# File 'lib/bundle_update_interactive/cli/table.rb', line 9

def initialize(outdated_gems)
  @pastel = BundleUpdateInteractive.pastel
  @headers = HEADERS.map { |h| pastel.dim.underline(h) }
  @rows = outdated_gems.transform_values { |gem| Row.new(gem).to_a.map(&:to_s) }
  @column_widths = calculate_column_widths
end

Instance Method Details

#gem_namesObject



16
17
18
# File 'lib/bundle_update_interactive/cli/table.rb', line 16

def gem_names
  rows.keys
end

#renderObject



29
30
31
32
33
# File 'lib/bundle_update_interactive/cli/table.rb', line 29

def render
  lines = [render_header]
  rows.each_key { |name| lines << render_gem(name) }
  lines.join("\n")
end

#render_gem(name) ⇒ Object



24
25
26
27
# File 'lib/bundle_update_interactive/cli/table.rb', line 24

def render_gem(name)
  row = rows.fetch(name)
  render_row(row)
end

#render_headerObject



20
21
22
# File 'lib/bundle_update_interactive/cli/table.rb', line 20

def render_header
  render_row(headers)
end