Sha256: 1a702b63442011923ad64c5bf5728ecd8d81cf4529c01008f83f6683344f20c4

Contents?: true

Size: 1.92 KB

Versions: 32

Compression:

Stored size: 1.92 KB

Contents

# frozen_string_literal: true

require "dependabot/file_parsers/java/gradle"
require "dependabot/file_updaters/java/gradle"

module Dependabot
  module FileUpdaters
    module Java
      class Gradle
        class DependencySetUpdater
          def initialize(dependency_files:)
            @dependency_files = dependency_files
          end

          def update_files_for_dep_set_change(dependency_set:,
                                              buildfile:,
                                              previous_requirement:,
                                              updated_requirement:)
            declaration_string =
              original_declaration_string(dependency_set, buildfile)

            return dependency_files unless declaration_string

            updated_content = buildfile.content.sub(
              declaration_string,
              declaration_string.sub(
                previous_requirement,
                updated_requirement
              )
            )

            updated_files = dependency_files.dup
            updated_files[updated_files.index(buildfile)] =
              update_file(file: buildfile, content: updated_content)

            updated_files
          end

          private

          attr_reader :dependency_files

          def original_declaration_string(dependency_set, buildfile)
            regex = FileParsers::Java::Gradle::DEPENDENCY_SET_DECLARATION_REGEX
            dependency_sets = []
            buildfile.content.scan(regex) do
              dependency_sets << Regexp.last_match.to_s
            end

            dependency_sets.find do |mtch|
              next unless mtch.include?(dependency_set[:group])

              mtch.include?(dependency_set[:version])
            end
          end

          def update_file(file:, content:)
            updated_file = file.dup
            updated_file.content = content
            updated_file
          end
        end
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
dependabot-core-0.83.2 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.83.1 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.83.0 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.82.4 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.82.3 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.82.2 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.82.1 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.82.0 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.81.1 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.81.0 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.80.1 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.80.0 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.79.4 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.79.3 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.79.2 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.79.1 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.79.0 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.78.0 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.77.2 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb
dependabot-core-0.77.1 lib/dependabot/file_updaters/java/gradle/dependency_set_updater.rb