Sha256: 4e0dedfce03a5e61802fbcccf81d838a40a8484500c8a9421b31726750b04ed1

Contents?: true

Size: 956 Bytes

Versions: 5

Compression:

Stored size: 956 Bytes

Contents

# typed: strict

module Kuby
  class Definition
    # extend T::Sig

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

    # T::Sig::WithoutRuntime.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

    # T::Sig::WithoutRuntime.sig {
    #   params(
    #     name: Symbol,
    #     block: T.nilable(T.proc.void)
    #   ).returns(Kuby::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

      environments[name]
    end

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

Version data entries

5 entries across 5 versions & 1 rubygems

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