Sha256: b280b42df5a5c6a50283d38bdcaddce56a63ede21e63c149620b334925a0d19d

Contents?: true

Size: 945 Bytes

Versions: 2

Compression:

Stored size: 945 Bytes

Contents

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::Error => ex
        ::EacLauncher::Publish::CheckResult.blocked("Error: #{ex}")
      rescue ::EacLauncher::Git::Error => ex
        ::EacLauncher::Publish::CheckResult.blocked("Git error: #{ex}")
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
eac_launcher-0.5.1 lib/eac_launcher/publish/base.rb
eac_launcher-0.5.0 lib/eac_launcher/publish/base.rb