Class: Dependabot::Bundler::UpdateChecker::LatestVersionFinder

Inherits:
Package::PackageLatestVersionFinder
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/bundler/update_checker/latest_version_finder.rb,
lib/dependabot/bundler/update_checker/latest_version_finder/dependency_source.rb

Defined Under Namespace

Classes: DependencySource

Instance Method Summary collapse

Constructor Details

#initialize(dependency:, dependency_files:, credentials:, ignored_versions:, security_advisories:, cooldown_options: nil, raise_on_ignored: false, options: {}) ⇒ LatestVersionFinder

Returns a new instance of LatestVersionFinder.



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/dependabot/bundler/update_checker/latest_version_finder.rb', line 35

def initialize(
  dependency:,
  dependency_files:,
  credentials:,
  ignored_versions:,
  security_advisories:,
  cooldown_options: nil,
  raise_on_ignored: false,
  options: {}
)
  @package_details = T.let(nil, T.nilable(Dependabot::Package::PackageDetails))
  @latest_version_details = T.let(nil, T.nilable(T::Hash[Symbol, T.untyped]))
  @releases_from_dependency_source = T.let(nil, T.nilable(T::Array[Dependabot::Package::PackageRelease]))
  super
end

Instance Method Details

#available_versionsObject



74
75
76
77
78
79
80
81
82
83
# File 'lib/dependabot/bundler/update_checker/latest_version_finder.rb', line 74

def available_versions
  return nil if package_details&.releases.nil?

  source_versions = releases_from_dependency_source
  return [] if source_versions.empty?

  T.must(package_details).releases.select do |release|
    source_versions.any? { |v| v.to_s == release.version.to_s }
  end
end

#cooldown_enabled?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'lib/dependabot/bundler/update_checker/latest_version_finder.rb', line 69

def cooldown_enabled?
  true
end

#latest_version_detailsObject



61
62
63
64
65
66
# File 'lib/dependabot/bundler/update_checker/latest_version_finder.rb', line 61

def latest_version_details
  @latest_version_details ||= begin
    latest_version = fetch_latest_version(language_version: nil)
    latest_version ? { version: latest_version } : nil
  end
end

#package_detailsObject



52
53
54
55
56
57
58
# File 'lib/dependabot/bundler/update_checker/latest_version_finder.rb', line 52

def package_details
  @package_details ||= Package::PackageDetailsFetcher.new(
    dependency: dependency,
    dependency_files: dependency_files,
    credentials: credentials
  ).fetch
end