class Chambermaid::Namespace
Namespaces each contain a ParameterStore
and Environment
instance, along with the overload flag
Public Class Methods
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
@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 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
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 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
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