Sha256: f91b6067bee839aad6ce9862defe6d483413ae7525a95996f433ed575b9be6d8

Contents?: true

Size: 838 Bytes

Versions: 20

Compression:

Stored size: 838 Bytes

Contents

# typed: strict

module Kuby
  class Definition
    extend T::Sig

    sig { returns(String) }
    attr_reader :app_name

    sig { params(app_name: String, block: T.nilable(T.proc.void)).void }
    def initialize(app_name, &block)
      @app_name = app_name
      @environments = T.let(@environments, T.nilable(T::Hash[Symbol, Environment]))
    end

    sig {
      params(
        name: Symbol,
        block: T.nilable(T.proc.void)
      ).returns(Environment)
    }
    def environment(name = Kuby.env, &block)
      name = name.to_s

      environments[name] ||= Environment.new(name, self)

      if block_given?
        environments[name].instance_eval(&block)
      end

      T.must(environments[name])
    end

    sig { returns(T::Hash[Symbol, Environment]) }
    def environments
      @environments ||= {}
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
kuby-core-0.17.0 lib/kuby/definition.rb
kuby-core-0.16.1 lib/kuby/definition.rb
kuby-core-0.16.0 lib/kuby/definition.rb
kuby-core-0.15.0 lib/kuby/definition.rb
kuby-core-0.14.0 lib/kuby/definition.rb
kuby-core-0.13.0 lib/kuby/definition.rb
kuby-core-0.12.0 lib/kuby/definition.rb
kuby-core-0.11.16 lib/kuby/definition.rb
kuby-core-0.11.15 lib/kuby/definition.rb
kuby-core-0.11.14 lib/kuby/definition.rb
kuby-core-0.11.13 lib/kuby/definition.rb
kuby-core-0.11.12 lib/kuby/definition.rb
kuby-core-0.11.11 lib/kuby/definition.rb
kuby-core-0.11.10 lib/kuby/definition.rb
kuby-core-0.11.9 lib/kuby/definition.rb
kuby-core-0.11.8 lib/kuby/definition.rb
kuby-core-0.11.7 lib/kuby/definition.rb
kuby-core-0.11.6 lib/kuby/definition.rb
kuby-core-0.11.4 lib/kuby/definition.rb
kuby-core-0.11.3 lib/kuby/definition.rb