class Lapidarist::Gem
Attributes
attempts[R]
installed_version[R]
name[R]
newest_version[R]
position[R]
Public Class Methods
from(gem, position: nil, attempt: 0, status: nil, reason: nil, updated_version: nil)
click to toggle source
# File lib/lapidarist/gem.rb, line 35 def self.from(gem, position: nil, attempt: 0, status: nil, reason: nil, updated_version: nil) attempts = gem.attempts if status attempts = attempts.merge( attempt => Attempt.new( status: status, reason: reason, version: updated_version ) ) end new( name: gem.name, position: position || gem.position, newest_version: gem.newest_version, installed_version: gem.installed_version, groups: gem.groups, attempts: attempts ) end
new(name:, position: nil, newest_version:, installed_version:, groups: [], attempts: {})
click to toggle source
# File lib/lapidarist/gem.rb, line 26 def initialize(name:, position: nil, newest_version:, installed_version:, groups: [], attempts: {}) @name = name @position = position @newest_version = newest_version @installed_version = installed_version @groups = groups @attempts = attempts end
Public Instance Methods
==(other_gem)
click to toggle source
# File lib/lapidarist/gem.rb, line 58 def ==(other_gem) current_status == other_gem.current_status && name == other_gem.name && installed_version == other_gem.installed_version && newest_version == other_gem.newest_version && groups == other_gem.groups end
available_update_levels?()
click to toggle source
# File lib/lapidarist/gem.rb, line 106 def available_update_levels? failed? && !version_change.next_level.nil? end
current_status()
click to toggle source
# File lib/lapidarist/gem.rb, line 74 def current_status latest_attempt&.status end
dependency?()
click to toggle source
# File lib/lapidarist/gem.rb, line 70 def dependency? groups.any? end
failed?()
click to toggle source
# File lib/lapidarist/gem.rb, line 82 def failed? current_status == :failed end
groups()
click to toggle source
# File lib/lapidarist/gem.rb, line 66 def groups @groups.sort end
latest_attempt()
click to toggle source
# File lib/lapidarist/gem.rb, line 127 def latest_attempt @latest_attempt ||= attempts[latest_attempt_number] || NullAttempt.new end
latest_attempt_number()
click to toggle source
# File lib/lapidarist/gem.rb, line 123 def latest_attempt_number @latest_attempt_number ||= attempts.keys.last end
log_s()
click to toggle source
# File lib/lapidarist/gem.rb, line 114 def log_s [ "outdated gem: #{name}", "installed: #{installed_version}", "newest: #{newest_version}", "updated: #{updated_version}" ].join(', ') end
next_semver_level()
click to toggle source
# File lib/lapidarist/gem.rb, line 110 def next_semver_level version_change.next_level end
outdated?(recursive: false)
click to toggle source
# File lib/lapidarist/gem.rb, line 78 def outdated?(recursive: false) current_status.nil? || (recursive && available_update_levels?) end
skip?()
click to toggle source
# File lib/lapidarist/gem.rb, line 86 def skip? current_status == :skipped end
updated?()
click to toggle source
# File lib/lapidarist/gem.rb, line 90 def updated? current_status == :updated end
updated_version()
click to toggle source
# File lib/lapidarist/gem.rb, line 94 def updated_version updated_attempt&.version end
what_changed()
click to toggle source
# File lib/lapidarist/gem.rb, line 98 def what_changed if version_changed? "#{name} from #{installed_version} to #{updated_version}" else "#{name} dependencies" end end
Private Instance Methods
updated_attempt()
click to toggle source
# File lib/lapidarist/gem.rb, line 137 def updated_attempt @updated_attempt ||= attempts.values.detect(&:updated?) end
version_change()
click to toggle source
# File lib/lapidarist/gem.rb, line 141 def version_change @version_change ||= Lapidarist::VersionChange.new( installed: installed_version, updated: latest_attempt&.version ) end
version_changed?()
click to toggle source
# File lib/lapidarist/gem.rb, line 133 def version_changed? updated_version && installed_version != updated_version end