Class: Dependabot::Bundler::UpdateChecker::RequirementsUpdater

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/bundler/update_checker/requirements_updater.rb

Defined Under Namespace

Classes: UnfixableRequirement

Constant Summary collapse

ALLOWED_UPDATE_STRATEGIES =
T.let(
  [
    RequirementsUpdateStrategy::LockfileOnly,
    RequirementsUpdateStrategy::BumpVersions,
    RequirementsUpdateStrategy::BumpVersionsIfNecessary
  ].freeze,
  T::Array[Dependabot::RequirementsUpdateStrategy]
)

Instance Method Summary collapse

Constructor Details

#initialize(requirements:, update_strategy:, updated_source:, latest_version:, latest_resolvable_version:) ⇒ RequirementsUpdater

Returns a new instance of RequirementsUpdater.



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/dependabot/bundler/update_checker/requirements_updater.rb', line 36

def initialize(
  requirements:,
  update_strategy:,
  updated_source:,
  latest_version:,
  latest_resolvable_version:
)
  @requirements = T.let(
    requirements.map { |req| Dependabot::DependencyRequirement.create(req) },
    T::Array[Dependabot::DependencyRequirement]
  )
  @latest_version = T.let(
    (T.cast(Dependabot::Bundler::Version.new(latest_version), Dependabot::Bundler::Version) if latest_version),
    T.nilable(Dependabot::Bundler::Version)
  )
  @updated_source = updated_source
  @update_strategy = update_strategy

  check_update_strategy

  @latest_resolvable_version = T.let(
    if latest_resolvable_version
      T.cast(Dependabot::Bundler::Version.new(latest_resolvable_version), Dependabot::Bundler::Version)
    end,
    T.nilable(Dependabot::Bundler::Version)
  )
end

Instance Method Details

#updated_requirementsObject



65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/dependabot/bundler/update_checker/requirements_updater.rb', line 65

def updated_requirements
  return requirements if update_strategy.lockfile_only?

  requirements.map do |req|
    if req[:file].include?(".gemspec")
      update_gemspec_requirement(req)
    else
      # If a requirement doesn't come from a gemspec, it must be from
      # a Gemfile.
      update_gemfile_requirement(req)
    end
  end
end