class KeepUp::Dependency

Single dependency with its current locked version.

Attributes

locked_version[R]
name[R]
newest_version[R]

Public Class Methods

new(name:, requirement_list:, locked_version:, newest_version:) click to toggle source
# File lib/keep_up/dependency.rb, line 6
def initialize(name:, requirement_list:, locked_version:, newest_version:)
  @name = name
  @requirement_list = requirement_list
  @locked_version = Gem::Version.new locked_version
  @newest_version = Gem::Version.new newest_version
end

Public Instance Methods

==(other) click to toggle source
# File lib/keep_up/dependency.rb, line 33
def ==(other)
  other.name == name &&
    other.locked_version == locked_version &&
    other.newest_version == newest_version &&
    other.requirement == requirement
end
generalize_specification(specification) click to toggle source
# File lib/keep_up/dependency.rb, line 23
def generalize_specification(specification)
  return specification if requirement.exact?

  segments = specification.version.segments
  return specification if segments.count <= segment_count

  version = segments.take(segment_count).join(".")
  Gem::Specification.new(specification.name, version)
end
matches_spec?(spec) click to toggle source
# File lib/keep_up/dependency.rb, line 19
def matches_spec?(spec)
  dependency.matches_spec? spec
end
requirement() click to toggle source
# File lib/keep_up/dependency.rb, line 15
def requirement
  @requirement ||= Gem::Requirement.new @requirement_list
end

Private Instance Methods

dependency() click to toggle source
# File lib/keep_up/dependency.rb, line 42
def dependency
  @dependency ||= Gem::Dependency.new name, requirement
end
segment_count() click to toggle source
# File lib/keep_up/dependency.rb, line 46
def segment_count
  @segment_count ||= begin
                       _, ver = requirement.requirements.first
                       ver.segments.count
                     end
end