Sha256: 6b21ab5f4f031f7fcaa55c5c1988a35ed766968242f451761ff4242f1c870b50

Contents?: true

Size: 1.09 KB

Versions: 94

Compression:

Stored size: 1.09 KB

Contents

# frozen_string_literal: true

require 'avm/launcher/errors/base'
require 'eac_ruby_utils/core_ext'

module Avm
  module Launcher
    module Publish
      class Base
        common_constructor :instance

        def run
          s = check
          info("Check: #{s}")
          return unless s.status == ::Avm::Launcher::Publish::CheckResult::STATUS_PENDING

          publish
        end

        def check
          s = check_with_rescue
          ::Avm::Launcher::Context.current.instance_manager.publish_state_set(
            instance, stereotype.stereotype_name, s.status
          )
          s
        end

        private

        def stereotype
          self.class.name.deconstantize.constantize
        end

        def check_with_rescue
          internal_check
        rescue ::Avm::Launcher::Errors::Base => e
          ::Avm::Launcher::Publish::CheckResult.blocked("Error: #{error_message(e)}")
        end

        # @return [String]
        def error_message(error)
          error.to_s + error.cause.if_present('') { |v| " / Caused by: #{error_message(v)}" }
        end
      end
    end
  end
end

Version data entries

94 entries across 94 versions & 2 rubygems

Version Path
avm-0.94.1 lib/avm/launcher/publish/base.rb
eac_tools-0.98.0 sub/avm/lib/avm/launcher/publish/base.rb
avm-0.94.0 lib/avm/launcher/publish/base.rb
eac_tools-0.94.0 sub/avm/lib/avm/launcher/publish/base.rb
avm-0.93.0 lib/avm/launcher/publish/base.rb
eac_tools-0.92.0 sub/avm/lib/avm/launcher/publish/base.rb
avm-0.92.0 lib/avm/launcher/publish/base.rb
eac_tools-0.91.0 sub/avm/lib/avm/launcher/publish/base.rb
avm-0.90.1 lib/avm/launcher/publish/base.rb
eac_tools-0.87.1 sub/avm/lib/avm/launcher/publish/base.rb
avm-0.90.0 lib/avm/launcher/publish/base.rb
eac_tools-0.87.0 sub/avm/lib/avm/launcher/publish/base.rb
avm-0.89.0 lib/avm/launcher/publish/base.rb
eac_tools-0.86.12 sub/avm/lib/avm/launcher/publish/base.rb
avm-0.88.0 lib/avm/launcher/publish/base.rb
eac_tools-0.86.11 sub/avm/lib/avm/launcher/publish/base.rb
avm-0.87.0 lib/avm/launcher/publish/base.rb
eac_tools-0.86.8 sub/avm/lib/avm/launcher/publish/base.rb
avm-0.86.2 lib/avm/launcher/publish/base.rb
eac_tools-0.86.7 sub/avm/lib/avm/launcher/publish/base.rb