Sha256: aa9ff8ea7bdf99944d7ab66b80a02b366d0fdd0e37e4e2fd82bb562e7f8af139

Contents?: true

Size: 1.22 KB

Versions: 5

Compression:

Stored size: 1.22 KB

Contents

# frozen_string_literal: true

require 'avm/eac_ruby_base1/patches/i18n'
require 'eac_ruby_utils/core_ext'

module Avm
  module EacRubyBase1
    module SourceStereotypes
      class Update
        require_sub __FILE__
        enable_simple_cache
        enable_speaker
        common_constructor :source do
          perform
        end

        def bundle_update
          infom 'Running "bundle update"...'
          ruby_gem.bundle('update').execute!
          infom 'Running "bundle install"...'
          ruby_gem.bundle('install').execute!
        end

        protected

        def perform
          update_gemfile_lock
          update_subs
        end

        def update_gemfile_lock
          source.scm.commit_if_change(-> { update_gemfile_lock_commit_message }) do
            bundle_update
          end
        end

        def update_gemfile_lock_commit_message
          i18n_translate(__method__, __locale: source.locale)
        end

        def update_subs
          source.subs.each do |sub|
            ::Avm::EacRubyBase1::SourceStereotypes::Update::SubUpdate.new(self, sub)
          end
        end

        def ruby_gem_uncached
          ::EacRubyGemsUtils::Gem.new(source.path)
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
avm-eac_ruby_base1-0.2.0 lib/avm/eac_ruby_base1/source_stereotypes/update.rb
avm-tools-0.110.0 vendor/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_stereotypes/update.rb
avm-tools-0.109.1 vendor/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_stereotypes/update.rb
avm-eac_ruby_base1-0.1.0 lib/avm/eac_ruby_base1/source_stereotypes/update.rb
avm-tools-0.109.0 vendor/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_stereotypes/update.rb