class Dependabot::Python::FileUpdater::RequirementFileUpdater
Attributes
credentials[R]
dependencies[R]
dependency_files[R]
Public Class Methods
new(dependencies:, dependency_files:, credentials:)
click to toggle source
# File lib/dependabot/python/file_updater/requirement_file_updater.rb, line 16 def initialize(dependencies:, dependency_files:, credentials:) @dependencies = dependencies @dependency_files = dependency_files @credentials = credentials end
Public Instance Methods
updated_dependency_files()
click to toggle source
# File lib/dependabot/python/file_updater/requirement_file_updater.rb, line 22 def updated_dependency_files return @updated_dependency_files if @update_already_attempted @update_already_attempted = true @updated_dependency_files ||= fetch_updated_dependency_files end
Private Instance Methods
dependency()
click to toggle source
# File lib/dependabot/python/file_updater/requirement_file_updater.rb, line 31 def dependency # For now, we'll only ever be updating a single dependency dependencies.first end
fetch_updated_dependency_files()
click to toggle source
# File lib/dependabot/python/file_updater/requirement_file_updater.rb, line 36 def fetch_updated_dependency_files reqs = dependency.requirements.zip(dependency.previous_requirements) reqs.map do |(new_req, old_req)| next if new_req == old_req file = get_original_file(new_req.fetch(:file)).dup updated_content = updated_requirement_or_setup_file_content(new_req, old_req) next if updated_content == file.content file.content = updated_content file end.compact end
get_original_file(filename)
click to toggle source
# File lib/dependabot/python/file_updater/requirement_file_updater.rb, line 64 def get_original_file(filename) dependency_files.find { |f| f.name == filename } end
updated_requirement_or_setup_file_content(new_req, old_req)
click to toggle source
# File lib/dependabot/python/file_updater/requirement_file_updater.rb, line 52 def updated_requirement_or_setup_file_content(new_req, old_req) content = get_original_file(new_req.fetch(:file)).content RequirementReplacer.new( content: content, dependency_name: dependency.name, old_requirement: old_req.fetch(:requirement), new_requirement: new_req.fetch(:requirement), new_hash_version: dependency.version ).updated_content end