Skip to content

Commit

Permalink
Use tapioca; fully-qualify constants in sigs
Browse files Browse the repository at this point in the history
  • Loading branch information
camertron committed May 7, 2022
1 parent 0135081 commit d40192f
Show file tree
Hide file tree
Showing 31 changed files with 8,844 additions and 4,672 deletions.
7 changes: 1 addition & 6 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,12 @@ source 'https://rubygems.org'

gemspec

gem 'kuby-crdb', github: 'getkuby/kuby-crdb'
gem 'kube-dsl', github: 'getkuby/kube-dsl'
gem 'kuby-cert-manager', github: 'getkuby/kuby-cert-manager'
gem 'kubernetes-cli', github: 'getkuby/kubernetes-cli'

group :development, :test do
gem 'pry-byebug'
gem 'rake'

gem 'curdle', '~> 1.0'
gem 'parlour', '~> 7.0'
gem 'parlour', github: 'camertron/parlour', branch: 'initialize_void' # '~> 7.0'
gem 'tapioca', '~> 0.7'
gem 'sorbet-runtime', '= 0.5.9897'
gem 'sorbet-static', '= 0.5.9897'
Expand Down
8 changes: 4 additions & 4 deletions kuby-core.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ Gem::Specification.new do |s|
s.add_dependency 'gli', '~> 2.21'
s.add_dependency 'helm-cli', '~> 0.3'
s.add_dependency 'krane', '~> 2.0'
s.add_dependency 'kuby-cert-manager', '>= 0.3'
s.add_dependency 'kuby-crdb', '~> 0.1'
s.add_dependency 'kube-dsl', '~> 0.4'
s.add_dependency 'kubernetes-cli', '~> 0.3'
s.add_dependency 'kuby-cert-manager', '~> 0.4'
s.add_dependency 'kuby-crdb', '~> 0.2'
s.add_dependency 'kube-dsl', '~> 0.7'
s.add_dependency 'kubernetes-cli', '~> 0.4'
s.add_dependency 'railties', '>= 5.1'
s.add_dependency 'rouge', '~> 3.0'
s.add_dependency 'rake'
Expand Down
1 change: 0 additions & 1 deletion lib/kuby.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# typed: ignore

require 'sorbet-runtime-stub'
require 'kuby/railtie'
require 'kubectl-rb/version'
require 'helm-rb/version'
Expand Down
4 changes: 2 additions & 2 deletions lib/kuby/definition.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ def initialize(app_name, &block)
params(
name: Symbol,
block: T.nilable(T.proc.void)
).returns(Environment)
).returns(Kuby::Environment)
}
def environment(name = Kuby.env, &block)
name = name.to_s
Expand All @@ -31,7 +31,7 @@ def environment(name = Kuby.env, &block)
T.must(environments[name])
end

T::Sig::WithoutRuntime.sig { returns(T::Hash[Symbol, Environment]) }
T::Sig::WithoutRuntime.sig { returns(T::Hash[Symbol, Kuby::Environment]) }
def environments
@environments ||= {}
end
Expand Down
18 changes: 9 additions & 9 deletions lib/kuby/docker/image.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class Image
T::Sig::WithoutRuntime.sig { returns(T.nilable(String)) }
attr_reader :registry_index_url

T::Sig::WithoutRuntime.sig { returns(Credentials) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::Credentials) }
attr_reader :credentials

T::Sig::WithoutRuntime.sig { returns(T.nilable(String)) }
Expand All @@ -25,9 +25,9 @@ class Image

T::Sig::WithoutRuntime.sig {
params(
dockerfile: T.any(Dockerfile, T.proc.returns(Dockerfile)),
dockerfile: T.any(Dockerfile, T.proc.returns(Kuby::Docker::Dockerfile)),
image_url: String,
credentials: Credentials,
credentials: Kuby::Docker::Credentials,
registry_index_url: T.nilable(String),
main_tag: T.nilable(String),
alias_tags: T::Array[String]
Expand All @@ -52,12 +52,12 @@ def initialize(dockerfile, image_url, credentials, registry_index_url = nil, mai
@docker_cli = T.let(@docker_cli, T.nilable(Docker::CLI))
end

T::Sig::WithoutRuntime.sig { returns(Image) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::Image) }
def new_version
raise NotImplementedError, 'please use a Docker::Image subclass'
end

T::Sig::WithoutRuntime.sig { returns(Image) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::Image) }
def current_version
raise NotImplementedError, 'please use a Docker::Image subclass'
end
Expand All @@ -67,7 +67,7 @@ def previous_version(current_tag = nil)
raise NotImplementedError, 'please use a Docker::Image subclass'
end

T::Sig::WithoutRuntime.sig { returns(Dockerfile) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::Dockerfile) }
def dockerfile
if @dockerfile.respond_to?(:call)
T.cast(@dockerfile, T.proc.returns(Dockerfile)).call
Expand Down Expand Up @@ -101,12 +101,12 @@ def image_repo
@image_repo ||= image_uri.path
end

T::Sig::WithoutRuntime.sig { returns(DockerURI) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::DockerURI) }
def image_uri
@full_image_uri ||= DockerURI.parse_uri(image_url)
end

T::Sig::WithoutRuntime.sig { returns(DockerURI) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::DockerURI) }
def registry_index_uri
@registry_index_uri ||= DockerURI.parse_index_uri(registry_index_url || image_url)
end
Expand Down Expand Up @@ -138,7 +138,7 @@ def pull(tag)
raise NotImplementedError, 'please use a Docker::Image subclass'
end

T::Sig::WithoutRuntime.sig { returns(Docker::CLI) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::CLI) }
def docker_cli
@docker_cli ||= Docker::CLI.new
end
Expand Down
10 changes: 5 additions & 5 deletions lib/kuby/docker/layer_stack.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ class LayerStack
extend T::Sig
extend T::Generic

Elem = type_member { { fixed: Layer } }
Elem = type_member { { fixed: Kuby::Docker::Layer } }

include Enumerable

T::Sig::WithoutRuntime.sig { returns(T::Array[Symbol]) }
attr_reader :stack

T::Sig::WithoutRuntime.sig { returns(T::Hash[Symbol, Layer]) }
T::Sig::WithoutRuntime.sig { returns(T::Hash[Symbol, Kuby::Docker::Layer]) }
attr_reader :layers

T::Sig::WithoutRuntime.sig { void }
Expand All @@ -24,7 +24,7 @@ def initialize

T::Sig::WithoutRuntime.sig {
override.params(
block: T.nilable(T.proc.params(layer: Layer).void)
block: T.nilable(T.proc.params(layer: Kuby::Docker::Layer).void)
)
.void
}
Expand All @@ -37,7 +37,7 @@ def each(&block)
params(
name: Symbol,
layer: T.nilable(Layer),
block: T.nilable(T.proc.params(df: Dockerfile).void)
block: T.nilable(T.proc.params(df: Kuby::Docker::Dockerfile).void)
)
.void
}
Expand All @@ -58,7 +58,7 @@ def use(name, layer = nil, &block)
name: Symbol,
layer: T.nilable(T.any(Layer, T::Hash[Symbol, T.untyped])),
options: T::Hash[Symbol, T.untyped],
block: T.nilable(T.proc.params(df: Dockerfile).void)
block: T.nilable(T.proc.params(df: Kuby::Docker::Dockerfile).void)
)
.void
}
Expand Down
8 changes: 4 additions & 4 deletions lib/kuby/docker/local_tags.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ module Docker
class LocalTags
extend T::Sig

T::Sig::WithoutRuntime.sig { returns CLI }
T::Sig::WithoutRuntime.sig { returns Kuby::Docker::CLI }
attr_reader :cli

T::Sig::WithoutRuntime.sig { returns(String) }
attr_reader :image_url

T::Sig::WithoutRuntime.sig {
params(
cli: CLI,
cli: Kuby::Docker::CLI,
image_url: String
)
.void
Expand Down Expand Up @@ -48,12 +48,12 @@ def latest_tags
end
end

T::Sig::WithoutRuntime.sig { returns(T::Array[TimestampTag]) }
T::Sig::WithoutRuntime.sig { returns(T::Array[Kuby::Docker::TimestampTag]) }
def timestamp_tags
tags.map { |t| TimestampTag.try_parse(t) }.compact
end

T::Sig::WithoutRuntime.sig { returns(T.nilable(TimestampTag)) }
T::Sig::WithoutRuntime.sig { returns(T.nilable(Kuby::Docker::TimestampTag)) }
def latest_timestamp_tag
@latest_timestamp_tag ||= timestamp_tags.sort.last
end
Expand Down
8 changes: 4 additions & 4 deletions lib/kuby/docker/package_phase.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class PackagePhase < Layer
T::Sig::WithoutRuntime.sig { returns(T::Array[Operation]) }
attr_reader :operations

T::Sig::WithoutRuntime.sig { params(environment: Environment).void }
T::Sig::WithoutRuntime.sig { params(environment: Kuby::Environment).void }
def initialize(environment)
super

Expand All @@ -27,7 +27,7 @@ def remove(package_name)
operations << [:remove, package_name, nil]
end

T::Sig::WithoutRuntime.sig { override.params(dockerfile: Dockerfile).void }
T::Sig::WithoutRuntime.sig { override.params(dockerfile: Kuby::Docker::Dockerfile).void }
def apply_to(dockerfile)
packages = distro_spec.default_packages.dup

Expand All @@ -50,7 +50,7 @@ def apply_to(dockerfile)

private

T::Sig::WithoutRuntime.sig { returns(Distro) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::Distro) }
def distro_spec
environment.docker.distro_spec
end
Expand All @@ -60,7 +60,7 @@ def distro_spec
package_name: Symbol,
version: T.nilable(String)
)
.returns(Distro::PackageImpl)
.returns(Kuby::Docker::Distro::PackageImpl)
}
def get_package(package_name, version)
if package = Kuby.packages[package_name]
Expand Down
2 changes: 1 addition & 1 deletion lib/kuby/docker/remote_tags.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def latest_tags
[]
end

T::Sig::WithoutRuntime.sig { returns(T::Array[TimestampTag]) }
T::Sig::WithoutRuntime.sig { returns(T::Array[Kuby::Docker::TimestampTag]) }
def timestamp_tags
tags.map { |t| TimestampTag.try_parse(t) }.compact
end
Expand Down
28 changes: 14 additions & 14 deletions lib/kuby/docker/spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class Spec
DEFAULT_DISTRO = T.let(:debian, Symbol)
DEFAULT_APP_ROOT_PATH = T.let('.'.freeze, String)

T::Sig::WithoutRuntime.sig { returns(Environment) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Environment) }
attr_reader :environment

T::Sig::WithoutRuntime.sig { returns(T.nilable(String)) }
Expand All @@ -20,10 +20,10 @@ class Spec
T::Sig::WithoutRuntime.sig { returns(T.nilable(String)) }
attr_reader :app_root_path

T::Sig::WithoutRuntime.sig { returns T.nilable(Docker::AppImage) }
T::Sig::WithoutRuntime.sig { returns T.nilable(Kuby::Docker::AppImage) }
attr_reader :image

T::Sig::WithoutRuntime.sig { params(environment: Environment).void }
T::Sig::WithoutRuntime.sig { params(environment: Kuby::Environment).void }
def initialize(environment)
@environment = environment

Expand Down Expand Up @@ -124,7 +124,7 @@ def registry_index_url(url)
params(
name: Symbol,
layer: T.nilable(Layer),
block: T.nilable(T.proc.params(df: Dockerfile).void)
block: T.nilable(T.proc.params(df: Kuby::Docker::Dockerfile).void)
)
.void
}
Expand Down Expand Up @@ -156,7 +156,7 @@ def exists?(name)
end

T::Sig::WithoutRuntime.sig {
params(block: T.nilable(T.proc.void)).returns(Credentials)
params(block: T.nilable(T.proc.void)).returns(Kuby::Docker::Credentials)
}
def credentials(&block)
@credentials ||= Credentials.new
Expand All @@ -177,47 +177,47 @@ def after_configuration
end
end

T::Sig::WithoutRuntime.sig { returns(SetupPhase) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::SetupPhase) }
def setup_phase
@setup_phase ||= SetupPhase.new(environment, self)
end

T::Sig::WithoutRuntime.sig { returns(PackagePhase) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::PackagePhase) }
def package_phase
@package_phase ||= PackagePhase.new(environment)
end

T::Sig::WithoutRuntime.sig { returns(BundlerPhase) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::BundlerPhase) }
def bundler_phase
@bundler_phase ||= BundlerPhase.new(environment)
end

T::Sig::WithoutRuntime.sig { returns(YarnPhase) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::YarnPhase) }
def yarn_phase
@yarn_phase ||= YarnPhase.new(environment)
end

T::Sig::WithoutRuntime.sig { returns(CopyPhase) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::CopyPhase) }
def copy_phase
@copy_phase ||= CopyPhase.new(environment)
end

T::Sig::WithoutRuntime.sig { returns(AppPhase) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::AppPhase) }
def app_phase
@app_phase ||= AppPhase.new(environment)
end

T::Sig::WithoutRuntime.sig { returns(AssetsPhase) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::AssetsPhase) }
def assets_phase
@assets_phase ||= AssetsPhase.new(environment)
end

T::Sig::WithoutRuntime.sig { returns(WebserverPhase) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::WebserverPhase) }
def webserver_phase
@webserver_phase ||= WebserverPhase.new(environment)
end

T::Sig::WithoutRuntime.sig { returns(Distro) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::Distro) }
def distro_spec
@distro_spec ||= if distro_klass = Kuby.distros[distro_name]
distro_klass.new(self)
Expand Down
10 changes: 5 additions & 5 deletions lib/kuby/docker/timestamp_tag.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class TimestampTag

FORMAT = T.let('%Y%m%d%H%M%S'.freeze, String)

T::Sig::WithoutRuntime.sig { params(str: T.nilable(String)).returns(T.nilable(TimestampTag)) }
T::Sig::WithoutRuntime.sig { params(str: T.nilable(String)).returns(T.nilable(Kuby::Docker::TimestampTag)) }
def self.try_parse(str)
return nil unless str

Expand All @@ -27,7 +27,7 @@ def self.try_parse(str)
new(time)
end

T::Sig::WithoutRuntime.sig { returns(TimestampTag) }
T::Sig::WithoutRuntime.sig { returns(Kuby::Docker::TimestampTag) }
def self.now
new(Time.now.utc)
end
Expand All @@ -45,12 +45,12 @@ def to_s
time.strftime(FORMAT)
end

T::Sig::WithoutRuntime.sig { params(other: TimestampTag).returns(T.nilable(Integer)) }
T::Sig::WithoutRuntime.sig { params(other: Kuby::Docker::TimestampTag).returns(T.nilable(Integer)) }
def <=>(other)
time <=> other.time
end

T::Sig::WithoutRuntime.sig { params(other: TimestampTag).returns(T::Boolean) }
T::Sig::WithoutRuntime.sig { params(other: Kuby::Docker::TimestampTag).returns(T::Boolean) }
def ==(other)
time == other.time
end
Expand All @@ -60,7 +60,7 @@ def hash
time.hash
end

T::Sig::WithoutRuntime.sig { params(other: TimestampTag).returns(T::Boolean) }
T::Sig::WithoutRuntime.sig { params(other: Kuby::Docker::TimestampTag).returns(T::Boolean) }
def eql?(other)
time == other.time
end
Expand Down
Loading

0 comments on commit d40192f

Please sign in to comment.