class Unwrappr::Writers::VersionChange

Describe the version change. Is it an upgrade to a later version, or a downgrade to an older version? Is it a major, minor or patch version change?

Implements the `annotation_writer` interface required by the LockFileAnnotator.

Public Class Methods

new(gem_change, gem_change_info) click to toggle source
# File lib/unwrappr/writers/version_change.rb, line 18
def initialize(gem_change, gem_change_info)
  @gem_change = gem_change
  @gem_change_info = gem_change_info
end
write(gem_change, gem_change_info) click to toggle source
# File lib/unwrappr/writers/version_change.rb, line 14
def self.write(gem_change, gem_change_info)
  new(gem_change, gem_change_info).write
end

Public Instance Methods

write() click to toggle source
# File lib/unwrappr/writers/version_change.rb, line 23
def write
  "#{change_description}\n"
end

Private Instance Methods

change_description() click to toggle source
# File lib/unwrappr/writers/version_change.rb, line 33
def change_description
  if added?
    'Gem added :snowman:'
  elsif removed?
    'Gem removed :fire:'
  else
    version_description
  end
end
grade() click to toggle source
# File lib/unwrappr/writers/version_change.rb, line 55
def grade
  if upgrade?
    'upgrade :chart_with_upwards_trend:'
  elsif downgrade?
    'downgrade :chart_with_downwards_trend::exclamation:'
  end
end
version_description() click to toggle source
# File lib/unwrappr/writers/version_change.rb, line 43
def version_description
  if major?
    "**Major** version #{grade}:exclamation: #{version_diff}"
  elsif minor?
    "**Minor** version #{grade}:large_orange_diamond: #{version_diff}"
  elsif patch?
    "**Patch** version #{grade}:small_blue_diamond: #{version_diff}"
  elsif hotfix?
    "**Hotfix** version #{grade}:small_red_triangle: #{version_diff}"
  end
end
version_diff() click to toggle source
# File lib/unwrappr/writers/version_change.rb, line 63
def version_diff
  "#{base_version} → #{head_version}"
end