class Chambermaid::Namespace

Namespaces each contain a ParameterStore and Environment instance, along with the overload flag

Public Class Methods

load!(path:, overload: false) click to toggle source

Create a namespace and immediately fetch and inject params to ENV

@see Chambermaid::Namespace.load!

@param [String] path @param [Boolean] overload

@return [Chambermaid::Namespace]

# File lib/chambermaid/namespace.rb, line 26
def self.load!(path:, overload: false)
  namespace = new(path: path, overload: overload)
  namespace.load!
  namespace
end
new(path:, overload: false) click to toggle source

@param [String] path @param [Boolean] overload

# File lib/chambermaid/namespace.rb, line 10
def initialize(path:, overload: false)
  @path = path
  @overload = overload

  @store = ParameterStore.new(path: path)
  @env = Environment.new({})
end

Public Instance Methods

load!() click to toggle source

Load ParameterStore and inject into ENV

@see Chambermaid::ParameterStore#load! @see Chambermaid::Environment#load! @see Chambermaid::Environment#overload!

# File lib/chambermaid/namespace.rb, line 37
def load!
  @store.load!
  load_env!
end
reload!() click to toggle source

Unload params from ENV, reload ParameterStore, and inject into ENV

@see Chambermaid::Environment#unload! @see Chambermaid::ParameterStore#reload! @see Chambermaid::Environment#load! @see Chambermaid::Environment#overload!

# File lib/chambermaid/namespace.rb, line 48
def reload!
  @env.unload!
  @store.reload!
  load_env!
end
unload!() click to toggle source

Unload params from ENV

@see Chambermaid::Environment#unload!

# File lib/chambermaid/namespace.rb, line 57
def unload!
  @env.unload!
  Chambermaid.logger.info("unloaded #{@env.size} params from ENV")
end

Private Instance Methods

load_env!() click to toggle source

Inject into ENV

# File lib/chambermaid/namespace.rb, line 65
def load_env!
  @env.replace(@store.params)
  @overload ? @env.overload! : @env.load!
  Chambermaid.logger.info("loaded #{@env.size} params into ENV from `#{@path}`")
end