Class: Bundleup::UpdateReport

Inherits:
Report
  • Object
show all
Defined in:
lib/bundleup/update_report.rb

Instance Method Summary collapse

Methods inherited from Report

#many?, #to_s

Constructor Details

#initialize(old_versions:, new_versions:) ⇒ UpdateReport

Returns a new instance of UpdateReport.



3
4
5
6
7
# File 'lib/bundleup/update_report.rb', line 3

def initialize(old_versions:, new_versions:)
  super()
  @old_versions = old_versions
  @new_versions = new_versions
end

Instance Method Details

#rowsObject



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/bundleup/update_report.rb', line 15

def rows
  gem_names.each_with_object([]) do |gem, rows|
    old = old_versions[gem]
    new = new_versions[gem]
    next if old == new

    row = [gem, old || "(new)", "→", new || "(removed)"]

    color = color_for_gem(gem)
    rows << row.map { |col| Colors.public_send(color, col) }
  end
end

#titleObject



9
10
11
12
13
# File 'lib/bundleup/update_report.rb', line 9

def title
  return "This gem will be updated:" if rows.one?

  "The following gems will be updated:"
end

#updated_gemsObject



28
29
30
31
32
# File 'lib/bundleup/update_report.rb', line 28

def updated_gems
  gem_names.reject do |gem|
    old_versions[gem] == new_versions[gem]
  end
end