class Dependabot::CLI::Scan

Attributes

options[R]
path[R]

Public Class Methods

new(path, options) click to toggle source
# File lib/dependabot/cli/scan.rb, line 8
def initialize(path, options)
  @path = ::Pathname.new(path)
  @options = options
end

Public Instance Methods

run() click to toggle source
# File lib/dependabot/cli/scan.rb, line 13
def run
  each_dependency do |dependency|
    update(dependency) if match?(dependency)
  end
end

Private Instance Methods

each_dependency(&block) click to toggle source
# File lib/dependabot/cli/scan.rb, line 27
def each_dependency(&block)
  each_file do |file|
    ::Spandx::Core::Parser.parse(file).each(&block)
  end
end
each_file(&block) click to toggle source
# File lib/dependabot/cli/scan.rb, line 21
def each_file(&block)
  ::Spandx::Core::PathTraversal
    .new(path, recursive: options[:recursive])
    .each(&block)
end
match?(dependency) click to toggle source
# File lib/dependabot/cli/scan.rb, line 41
def match?(dependency)
  options[:dependency].nil? || options[:dependency] == dependency.name
end
update(dependency) click to toggle source
# File lib/dependabot/cli/scan.rb, line 33
def update(dependency)
  ::Dependabot.logger.info("Updating #{dependency.name}…")
  ::Dependabot::Publish.new(dependency).update!(push: options[:push])
rescue StandardError => boom
  Dependabot.logger.error(boom)
  boom.backtrace.each { |x| Dependabot.logger.debug(x) }
end