class Bundleup::UpdateReport

Attributes

new_versions[R]
old_versions[R]

Public Class Methods

new(old_versions:, new_versions:) click to toggle source
Calls superclass method
# File lib/bundleup/update_report.rb, line 3
def initialize(old_versions:, new_versions:)
  super()
  @old_versions = old_versions
  @new_versions = new_versions
end

Public Instance Methods

rows() click to toggle source
# 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
title() click to toggle source
# File lib/bundleup/update_report.rb, line 9
def title
  return "This gem will be updated:" if rows.count == 1

  "The following gems will be updated:"
end

Private Instance Methods

color_for_gem(gem) click to toggle source
# File lib/bundleup/update_report.rb, line 36
def color_for_gem(gem)
  old_version = old_versions[gem]
  new_version = new_versions[gem]

  return :blue if old_version.nil?
  return :red if new_version.nil? || major_upgrade?(old_version, new_version)
  return :yellow if minor_upgrade?(old_version, new_version)

  :plain
end
gem_names() click to toggle source
# File lib/bundleup/update_report.rb, line 32
def gem_names
  (old_versions.keys | new_versions.keys).sort
end
major(version) click to toggle source
# File lib/bundleup/update_report.rb, line 55
def major(version)
  version.split(".", 2)[0]
end
major_upgrade?(old_version, new_version) click to toggle source
# File lib/bundleup/update_report.rb, line 47
def major_upgrade?(old_version, new_version)
  major(new_version) != major(old_version)
end
minor(version) click to toggle source
# File lib/bundleup/update_report.rb, line 59
def minor(version)
  version.split(".", 3)[1]
end
minor_upgrade?(old_version, new_version) click to toggle source
# File lib/bundleup/update_report.rb, line 51
def minor_upgrade?(old_version, new_version)
  minor(new_version) != minor(old_version)
end