Sha256: 57a9f5acba38e4d271e78cae31d93fd6f1385176420f722ce4429449a8debffe

Contents?: true

Size: 1.42 KB

Versions: 17

Compression:

Stored size: 1.42 KB

Contents

module Dpl
  class Provider < Cl::Cmd
    class Status < Struct.new(:provider, :status, :info)
      STATUS = %i(dev alpha beta stable deprecated)

      MSG = {
        dev:        'Support for deployments to %s is in **development**',
        alpha:      'Support for deployments to %s is in **alpha**',
        beta:       'Support for deployments to %s is in **beta**',
        deprecated: 'Support for deployments to %s is *deprecated**',
        pre_stable: 'Please see [Maturity Levels](%s) for details.'
      }

      URL = 'https://github.com/travis-ci/dpl/#maturity-levels'

      def initialize(provider, status, info)
        unknown!(status) unless known?(status)
        super
      end

      def announce?
        !stable?
      end

      def msg
        msg = "#{MSG[status] % name}"
        msg << "(#{info})" if info
        msg << ". #{MSG[:pre_stable] % URL}" if pre_stable?
        msg
      end

      private

        def name
          provider.full_name
        end

        def pre_stable?
          STATUS.index(status) < STATUS.index(:stable)
        end

        def stable?
          status == :stable
        end

        def deprecated?
          status == :deprecated
        end

        def known?(status)
          STATUS.include?(status)
        end

        def unknown!(status)
          raise "Unknown status: #{status.inspect}. Known statuses are: #{STATUS.map(&:inspect).join(', ')}"
        end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
dpl-2.0.3.beta.4 lib/dpl/provider/status.rb
dpl-2.0.3.beta.3 lib/dpl/provider/status.rb
dpl-2.0.3.beta.2 lib/dpl/provider/status.rb
dpl-2.0.3.beta.1 lib/dpl/provider/status.rb
dpl-2.0.2.beta.1 lib/dpl/provider/status.rb
dpl-2.0.0.beta.3 lib/dpl/provider/status.rb
dpl-2.0.0.beta.2 lib/dpl/provider/status.rb
dpl-2.0.0.alpha.14 lib/dpl/provider/status.rb
dpl-2.0.0.alpha.13 lib/dpl/provider/status.rb
dpl-2.0.0.alpha.12 lib/dpl/provider/status.rb
dpl-2.0.0.alpha.11 lib/dpl/provider/status.rb
dpl-2.0.0.alpha.10 lib/dpl/provider/status.rb
dpl-2.0.0.alpha.9 lib/dpl/provider/status.rb
dpl-2.0.0.alpha.8 lib/dpl/provider/status.rb
dpl-2.0.0.alpha.7 lib/dpl/provider/status.rb
dpl-2.0.0.alpha.6 lib/dpl/provider/status.rb
dpl-2.0.0.alpha.5 lib/dpl/provider/status.rb