Sha256: f2697c0e01467914882285f4ef4214688eaadb648209a5645ff00b4bb18ae274

Contents?: true

Size: 1.57 KB

Versions: 63

Compression:

Stored size: 1.57 KB

Contents

# frozen_string_literal: true

require 'avm/eac_ruby_base1/preferred_version_requirements'
require 'eac_ruby_utils/core_ext'

module Avm
  module EacRubyBase1
    module Sources
      class UpdateDependencyRequirements
        enable_simple_cache
        common_constructor :source, :gem_name

        def perform
          source.scm.commit_if_change(commit_message) { update_code }
        end

        private

        # @return [String]
        def commit_message
          i18n_translate(__method__,
                         name: gem_name,
                         requirements_list: requirements_list.join(', '),
                         __locale: source.locale)
        end

        # @return [Array<String>]
        def requirements_list_uncached
          ::Avm::EacRubyBase1::PreferredVersionRequirements.new(
            source.gemfile_lock_gem_version(gem_name)
          ).to_requirements_list
        end

        def gemspec_uncached
          ::Avm::EacRubyBase1::Rubygems::Gemspec.from_file(source.gemspec_path)
        end

        def parent_bundle
          return unless source.parent.if_present { |v| v.is_a?(::Avm::EacRubyBase1::Sources::Base) }

          source.parent.bundle_update.execute!
        end

        def update_code
          update_gemspec
          source.bundle.system!
          parent_bundle
        end

        def update_gemspec
          gemspec.dependency(gem_name).version_specs = requirements_list
          gemspec.write(source.gemspec_path)
          source.bundle('exec', 'rubocop', source.gemspec_path).system!
        end
      end
    end
  end
end

Version data entries

63 entries across 63 versions & 2 rubygems

Version Path
eac_tools-0.53.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
avm-eac_ruby_base1-0.28.1 lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
eac_tools-0.52.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
avm-eac_ruby_base1-0.28.0 lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
eac_tools-0.51.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
eac_tools-0.50.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
eac_tools-0.49.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
eac_tools-0.48.1 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
eac_tools-0.48.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
avm-eac_ruby_base1-0.27.3 lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
eac_tools-0.47.2 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
avm-eac_ruby_base1-0.27.2 lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
eac_tools-0.47.1 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
eac_tools-0.47.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
eac_tools-0.46.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
eac_tools-0.45.2 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
eac_tools-0.45.1 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
avm-eac_ruby_base1-0.27.1 lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
eac_tools-0.45.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb
eac_tools-0.44.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/update_dependency_requirements.rb