Sha256: d851242b45086fce8a7eba1d0243cb15077b154cfe464c028658161f7cf298ec

Contents?: true

Size: 1016 Bytes

Versions: 10

Compression:

Stored size: 1016 Bytes

Contents

# frozen_string_literal: true

require 'avm/launcher/errors/base'

module EacLauncher
  module Publish
    class Base
      attr_reader :instance

      def initialize(instance)
        @instance = instance
      end

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

        publish
      end

      def check
        s = check_with_rescue
        ::EacLauncher::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 ::EacLauncher::Instances::Errors::Base => e
        ::EacLauncher::Publish::CheckResult.blocked("Error: #{e}")
      rescue ::EacLauncher::Git::Error => e
        ::EacLauncher::Publish::CheckResult.blocked("Git error: #{e}")
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
avm-tools-0.67.0 lib/eac_launcher/publish/base.rb
avm-tools-0.66.0 lib/eac_launcher/publish/base.rb
avm-tools-0.65.0 lib/eac_launcher/publish/base.rb
avm-tools-0.64.2 lib/eac_launcher/publish/base.rb
avm-tools-0.64.1 lib/eac_launcher/publish/base.rb
avm-tools-0.64.0 lib/eac_launcher/publish/base.rb
avm-tools-0.63.0 lib/eac_launcher/publish/base.rb
avm-tools-0.62.4 lib/eac_launcher/publish/base.rb
avm-tools-0.62.3 lib/eac_launcher/publish/base.rb
avm-tools-0.62.2 lib/eac_launcher/publish/base.rb