Sha256: 82bd1b9617873c156b2a708f707a30c89d3c4cce343978aaa3770d66cc8c36bd

Contents?: true

Size: 1.16 KB

Versions: 5

Compression:

Stored size: 1.16 KB

Contents

# typed: strict

module Kuby
  module Docker
    class Distro
      # extend T::Sig
      # extend T::Helpers

      # abstract!

      # PackageImpl = T.type_alias {
      #   T.any(Packages::Package, Packages::ManagedPackage, Packages::SimpleManagedPackage)
      # }

      # ManagedPackageImpl = T.type_alias {
      #   T.any(Packages::ManagedPackage, Packages::SimpleManagedPackage)
      # }

      # T::Sig::WithoutRuntime.sig { params(phase: Layer).void }
      def initialize(phase)
        @phase = phase
      end

      # T::Sig::WithoutRuntime.sig { params(packages: T::Array[PackageImpl], into: Dockerfile).void }
      def install(packages, into:)
        raise NotImplementedError,
          "#{__method__} must be defined in derived classes"
      end

      # T::Sig::WithoutRuntime.sig { returns(T::Array[[Symbol, T.nilable(String)]]) }
      def default_packages
        raise NotImplementedError,
          "#{__method__} must be defined in derived classes"
      end

      # T::Sig::WithoutRuntime.sig { returns(String) }
      def shell_exe
        raise NotImplementedError,
          "#{__method__} must be defined in derived classes"
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
kuby-core-0.20.2 lib/kuby/docker/distro.rb
kuby-core-0.20.1 lib/kuby/docker/distro.rb
kuby-core-0.20.0 lib/kuby/docker/distro.rb
kuby-core-0.19.0 lib/kuby/docker/distro.rb
kuby-core-0.18.0 lib/kuby/docker/distro.rb