lib/keep_up/dependency.rb in keep_up-0.4.0 vs lib/keep_up/dependency.rb in keep_up-0.5.0

- old
+ new

@@ -1,12 +1,42 @@ module KeepUp # Single dependency with its current locked version. class Dependency - def initialize(name:, version:, locked_version:) - @name = name - @version = version - @locked_version = locked_version + def initialize(dependency:, locked_spec:) + @dependency = dependency + @locked_spec = locked_spec end - attr_reader :name, :version, :locked_version + def name + @dependency.name + end + + def locked_version + @locked_spec.version + end + + def matches_spec?(spec) + @dependency.matches_spec? spec + end + + 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 + + private + + def requirement + @dependency.requirement + end + + def segment_count + @segment_count ||= begin + _, ver = requirement.requirements.first + ver.segments.count + end + end end end