class Dependabot::Composer::FileUpdater::ManifestUpdater
Attributes
dependencies[R]
manifest[R]
Public Class Methods
new(dependencies:, manifest:)
click to toggle source
# File lib/dependabot/composer/file_updater/manifest_updater.rb, line 9 def initialize(dependencies:, manifest:) @dependencies = dependencies @manifest = manifest end
Public Instance Methods
updated_manifest_content()
click to toggle source
# File lib/dependabot/composer/file_updater/manifest_updater.rb, line 14 def updated_manifest_content dependencies.reduce(manifest.content.dup) do |content, dep| updated_content = content updated_requirements(dep).each do |new_req| old_req = old_requirement(dep, new_req).fetch(:requirement) updated_req = new_req.fetch(:requirement) regex = / "#{Regexp.escape(dep.name)}"\s*:\s* "#{Regexp.escape(old_req)}" /x updated_content = content.gsub(regex) do |declaration| declaration.gsub(%("#{old_req}"), %("#{updated_req}")) end raise "Expected content to change!" if content == updated_content end updated_content end end
Private Instance Methods
new_requirements(dependency)
click to toggle source
# File lib/dependabot/composer/file_updater/manifest_updater.rb, line 42 def new_requirements(dependency) dependency.requirements.select { |r| r[:file] == manifest.name } end
old_requirement(dependency, new_requirement)
click to toggle source
# File lib/dependabot/composer/file_updater/manifest_updater.rb, line 46 def old_requirement(dependency, new_requirement) dependency.previous_requirements. select { |r| r[:file] == manifest.name }. find { |r| r[:groups] == new_requirement[:groups] } end
requirement_changed?(file, dependency)
click to toggle source
# File lib/dependabot/composer/file_updater/manifest_updater.rb, line 57 def requirement_changed?(file, dependency) changed_requirements = dependency.requirements - dependency.previous_requirements changed_requirements.any? { |f| f[:file] == file.name } end
updated_requirements(dependency)
click to toggle source
# File lib/dependabot/composer/file_updater/manifest_updater.rb, line 52 def updated_requirements(dependency) new_requirements(dependency). reject { |r| dependency.previous_requirements.include?(r) } end