class GemCheckUpdates::Gem

Constants

DEFAULT_SCOPE

Attributes

current_version[RW]
name[RW]
version_range[RW]
versions[RW]

Public Class Methods

new(name: nil, current_version: nil, versions: [], version_range: nil, update_scope: DEFAULT_SCOPE) click to toggle source
# File lib/gem_check_updates/gem.rb, line 12
def initialize(name: nil,
               current_version: nil,
               versions: [],
               version_range: nil,
               update_scope: DEFAULT_SCOPE)
  @name = name
  @current_version = current_version
  @versions = versions
  @version_range = version_range
  @update_scope = update_scope
end

Public Instance Methods

highlighted_latest_version() click to toggle source
# File lib/gem_check_updates/gem.rb, line 50
def highlighted_latest_version
  major = @current_version.major == latest_version.major ? latest_version.major : latest_version.major.green
  minor = @current_version.minor == latest_version.minor ? latest_version.minor : latest_version.minor.green
  patch = @current_version.patch == latest_version.patch ? latest_version.patch : latest_version.patch.green

  [major, minor, patch].join('.')
end
latest_version() click to toggle source
# File lib/gem_check_updates/gem.rb, line 31
def latest_version
  # Ignore pre release version (ex. beta, rc), and sort desc
  versions = @versions.reject(&:pre_release)
                      .sort
                      .reverse

  case @update_scope
  when GemCheckUpdates::VersionScope::MINOR
    versions.select { |v| v.major == @current_version.major }.first
  when GemCheckUpdates::VersionScope::PATCH
    versions.select do |v|
      v.major == @current_version.major && v.minor == @current_version.minor
    end.first
  else
    # This branch is equal to specifying major updates
    versions.first
  end
end
update_available?() click to toggle source
# File lib/gem_check_updates/gem.rb, line 24
def update_available?
  !latest_version.nil? &&
    !@current_version.nil? &&
    @current_version.version_specified? &&
    latest_version > @current_version
end