Skip to content

Commit

Permalink
Strict type Dependabot::Bundler::FilePreparer. (#10029)
Browse files Browse the repository at this point in the history
  • Loading branch information
raj-meka committed Jun 18, 2024
1 parent bebe468 commit 17d61c8
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions bundler/lib/dependabot/bundler/file_parser/file_preparer.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# typed: true
# typed: strict
# frozen_string_literal: true

require "sorbet-runtime"
require "dependabot/dependency_file"
require "dependabot/file_parsers/base"
require "dependabot/bundler/file_updater/gemspec_sanitizer"
Expand All @@ -9,15 +10,19 @@ module Dependabot
module Bundler
class FileParser < Dependabot::FileParsers::Base
class FilePreparer
extend T::Sig

sig { params(dependency_files: T::Array[Dependabot::DependencyFile]).void }
def initialize(dependency_files:)
@dependency_files = dependency_files
end

sig { returns(T::Array[Dependabot::DependencyFile]) }
def prepared_dependency_files
files = gemspecs.compact.map do |file|
DependencyFile.new(
name: file.name,
content: sanitize_gemspec_content(file.content),
content: sanitize_gemspec_content(T.must(file.content)),
directory: file.directory,
support_file: file.support_file?
)
Expand All @@ -36,13 +41,16 @@ def prepared_dependency_files

private

sig { returns(T::Array[Dependabot::DependencyFile]) }
attr_reader :dependency_files

sig { returns(T.nilable(Dependabot::DependencyFile)) }
def gemfile
dependency_files.find { |f| f.name == "Gemfile" } ||
dependency_files.find { |f| f.name == "gems.rb" }
end

sig { returns(T::Array[Dependabot::DependencyFile]) }
def evaled_gemfiles
dependency_files
.reject { |f| f.name.end_with?(".gemspec") }
Expand All @@ -54,33 +62,40 @@ def evaled_gemfiles
.reject(&:support_file?)
end

sig { returns(T::Array[Dependabot::DependencyFile]) }
def specification_files
dependency_files.select { |f| f.name.end_with?(".specification") }
end

sig { returns(T.nilable(Dependabot::DependencyFile)) }
def lockfile
dependency_files.find { |f| f.name == "Gemfile.lock" } ||
dependency_files.find { |f| f.name == "gems.locked" }
end

sig { returns(T::Array[Dependabot::DependencyFile]) }
def gemspecs
dependency_files.select { |f| f.name.end_with?(".gemspec") }
end

sig { returns(T.nilable(Dependabot::DependencyFile)) }
def ruby_version_file
dependency_files.find { |f| f.name == ".ruby-version" }
end

sig { returns(T.nilable(Dependabot::DependencyFile)) }
def tool_versions_file
dependency_files.find { |f| f.name == ".tool-versions" }
end

sig { returns(T::Array[Dependabot::DependencyFile]) }
def imported_ruby_files
dependency_files
.select { |f| f.name.end_with?(".rb") }
.reject { |f| f.name == "gems.rb" }
end

sig { params(gemspec_content: String).returns(String) }
def sanitize_gemspec_content(gemspec_content)
# No need to set the version correctly - this is just an update
# check so we're not going to persist any changes to the lockfile.
Expand Down

0 comments on commit 17d61c8

Please sign in to comment.