class Dependabot::NpmAndYarn::SubDependencyFilesFilterer

Attributes

dependency_files[R]
updated_dependencies[R]

Public Class Methods

new(dependency_files:, updated_dependencies:) click to toggle source
# File lib/dependabot/npm_and_yarn/sub_dependency_files_filterer.rb, line 14
def initialize(dependency_files:, updated_dependencies:)
  @dependency_files = dependency_files
  @updated_dependencies = updated_dependencies
end

Public Instance Methods

files_requiring_update() click to toggle source
# File lib/dependabot/npm_and_yarn/sub_dependency_files_filterer.rb, line 19
def files_requiring_update
  @files_requiring_update ||=
    lockfiles.select do |lockfile|
      lockfile_dependencies(lockfile).any? do |sub_dep|
        updated_dependencies.any? do |updated_dep|
          next false unless sub_dep.name == updated_dep.name

          version_class.new(updated_dep.version) >
            version_class.new(sub_dep.version)
        end
      end
    end
end

Private Instance Methods

lockfile?(file) click to toggle source
# File lib/dependabot/npm_and_yarn/sub_dependency_files_filterer.rb, line 49
def lockfile?(file)
  file.name.end_with?(
    "package-lock.json",
    "yarn.lock",
    "npm-shrinkwrap.json"
  )
end
lockfile_dependencies(lockfile) click to toggle source
# File lib/dependabot/npm_and_yarn/sub_dependency_files_filterer.rb, line 37
def lockfile_dependencies(lockfile)
  @lockfile_dependencies ||= {}
  @lockfile_dependencies[lockfile.name] ||=
    NpmAndYarn::FileParser::LockfileParser.new(
      dependency_files: [lockfile]
    ).parse
end
lockfiles() click to toggle source
# File lib/dependabot/npm_and_yarn/sub_dependency_files_filterer.rb, line 45
def lockfiles
  dependency_files.select { |file| lockfile?(file) }
end
version_class() click to toggle source
# File lib/dependabot/npm_and_yarn/sub_dependency_files_filterer.rb, line 57
def version_class
  NpmAndYarn::Version
end