Class: Dependabot::Package::CooldownDateTracker

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/package/cooldown_date_tracker.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dependency:, ignored_versions:) ⇒ CooldownDateTracker

Returns a new instance of CooldownDateTracker.



16
17
18
19
20
21
22
23
24
# File 'lib/dependabot/package/cooldown_date_tracker.rb', line 16

def initialize(dependency:, ignored_versions:)
  @dependency = dependency
  @ignored_versions = ignored_versions
  @active = T.let(false, T::Boolean)
  @language_version = T.let(nil, T.nilable(T.any(String, Dependabot::Version)))
  @enforce_requirements = T.let(false, T::Boolean)
  @prefiltered = T.let(false, T::Boolean)
  @releases = T.let({}, T::Hash[Dependabot::Package::PackageRelease, Integer])
end

Instance Attribute Details

#activeObject (readonly)

Returns the value of attribute active.



27
28
29
# File 'lib/dependabot/package/cooldown_date_tracker.rb', line 27

def active
  @active
end

Instance Method Details

#filter(language_version:, requirements:, &block) ⇒ Object



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

def filter(language_version:, requirements:, &block)
  @active = true
  @language_version = language_version
  @enforce_requirements = requirements

  filtered = yield
  mark_for_selected_release(filtered)
  filtered
ensure
  @active = false
  @language_version = nil
  @enforce_requirements = false
  @releases.clear
end

#filter_prefiltered(&block) ⇒ Object



55
56
57
58
59
60
# File 'lib/dependabot/package/cooldown_date_tracker.rb', line 55

def filter_prefiltered(&block)
  @prefiltered = true
  filter(language_version: nil, requirements: false, &block)
ensure
  @prefiltered = false
end

#record(release:, current_version:, days:) ⇒ Object



69
70
71
72
73
74
# File 'lib/dependabot/package/cooldown_date_tracker.rb', line 69

def record(release:, current_version:, days:)
  return unless active
  return unless @prefiltered || relevant?(release, current_version)

  @releases[release] = days
end