Sha256: 9025aff48cb5fbca4c68e9b68cbbe7c1318ac400379048cb510993d0c33d122c

Contents?: true

Size: 1.85 KB

Versions: 32

Compression:

Stored size: 1.85 KB

Contents

# frozen_string_literal: true

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

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

          def update_files_for_property_change(property_name:,
                                               callsite_buildfile:,
                                               previous_value:,
                                               updated_value:)
            declaration_details = property_value_finder.property_details(
              property_name: property_name,
              callsite_buildfile: callsite_buildfile
            )
            declaration_string = declaration_details.fetch(:declaration_string)
            filename = declaration_details.fetch(:file)

            file_to_update = dependency_files.find { |f| f.name == filename }
            updated_content = file_to_update.content.sub(
              declaration_string,
              declaration_string.sub(previous_value, updated_value)
            )

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

            updated_files
          end

          private

          attr_reader :dependency_files

          def property_value_finder
            @property_value_finder ||=
              FileParsers::Java::Gradle::PropertyValueFinder.
              new(dependency_files: dependency_files)
          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/property_value_updater.rb
dependabot-core-0.83.1 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.83.0 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.82.4 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.82.3 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.82.2 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.82.1 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.82.0 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.81.1 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.81.0 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.80.1 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.80.0 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.79.4 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.79.3 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.79.2 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.79.1 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.79.0 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.78.0 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.77.2 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb
dependabot-core-0.77.1 lib/dependabot/file_updaters/java/gradle/property_value_updater.rb