Class: DependencyTimelineAudit::Check

Inherits:
Object
  • Object
show all
Defined in:
lib/dependency-timeline-audit/check.rb

Class Method Summary collapse

Class Method Details

.check(lockfile: 'Gemfile.lock', verbose: true) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/dependency-timeline-audit/check.rb', line 11

def self.check(lockfile: 'Gemfile.lock', verbose: true)
  outdated_versions = []
  locked_gems.each do |gem|
    lock_released_at = GemInfo.version_created_at(gem[:name], gem[:locked_version])
    latest_version = GemInfo.latest_version(gem[:name])
    outdated_versions.push(gem[:name]) if gem_outdated?(lock_released_at)
    print_info(gem, lock_released_at, latest_version) if verbose
  end

  print "\n" if verbose

  if outdated_versions.any?
    set_text_color_red
    puts "Outdated gems detected!"
    puts " - #{outdated_versions.join(', ')}"

    exit(1) # Failure
  else
    reset_text_style
    puts "All gems are within the accepted threshold!"

    exit(0) # Success
  end
end

.outdated_thresholdObject

TODO: activesupport is kinda hefty for just grabbing 1.year.ago, remove



7
8
9
# File 'lib/dependency-timeline-audit/check.rb', line 7

def self.outdated_threshold
  1.year.ago
end