module Chambermaid::Base
Public Class Methods
extended(base)
click to toggle source
# File lib/chambermaid/base.rb, line 6 def self.extended(base) # Make a copy of ENV before we mess it all up @@_original_env = ENV.to_h.dup.freeze end
Public Instance Methods
add_namespace(path, overload: false)
click to toggle source
Add an AWS SSM parameter namespace to ENV
@param [String] path @param [Boolean] overload
true - replace any duplicate ENV keys with new params false - keep any existing duplicate ENV key values
@raise [ArgumentError]
when `path` is not a string
@example
Chambermaid.add_namespace("/my/param/namespace")
@example overload duplicate ENV vars
Chambermaid.add_namespace("/my/param/namespace", overload: true)
# File lib/chambermaid/base.rb, line 57 def add_namespace(path, overload: false) raise ArgumentError.new("`path` must be a string") unless path.is_a?(String) raise ArgumentError.new("`overload` must be a boolean") unless [true, false].include?(overload) namespaces << Namespace.new(path: path, overload: overload) end
add_namespace!(path, overload: false)
click to toggle source
Immediately load an AWS SSM parameter namespace to ENV
@param [String] path @param [Boolean] overload
true - replace any duplicate ENV keys with new params false - keep any existing duplicate ENV key values
@raise [ArgumentError]
when `path` is not a string
@example
Chambermaid.add_namespace!("/my/param/namespace")
@example overload duplicate ENV vars
Chambermaid.add_namespace("/my/param/namespace", overload: true)
# File lib/chambermaid/base.rb, line 79 def add_namespace!(path, overload: false) raise ArgumentError.new("`path` must be a string") unless path.is_a?(String) raise ArgumentError.new("`overload` must be a boolean") unless [true, false].include?(overload) namespaces << Namespace.load!(path: path, overload: overload) end
add_service(service, overload: false)
click to toggle source
Add all secrets from Chamber service to ENV
@param [String] service @param [Boolean] overload
true - replace any duplicate ENV keys with new params false - keep any existing duplicate ENV key values
@example
Chambermaid.add_service("my-chamber-service")
@example overload duplicate ENV vars
Chambermaid.add_service("my-chamber-service", overload: true)
@see {Chambermaid::Base.add_namespace}
# File lib/chambermaid/base.rb, line 100 def add_service(service, overload: false) service = "/#{service}" unless service[0] == "/" add_namespace(service) end
configuration()
click to toggle source
@todo
# File lib/chambermaid/base.rb, line 18 def configuration raise "Namespaces must be defined" unless @namespaces end
configure() { |self| ... }
click to toggle source
# File lib/chambermaid/base.rb, line 13 def configure yield self end
load!()
click to toggle source
Load SSM into ENV
# File lib/chambermaid/base.rb, line 23 def load! @namespaces.each(&:load!) end
log_level()
click to toggle source
!@attribute [r] log_level
@return [Symbol] (default = :info) current logger level
# File lib/chambermaid/base.rb, line 124 def log_level return logger.level unless @logger.nil? return @log_level unless @log_level.nil? return :info end
log_level=(val = :info)
click to toggle source
!@attribute [w] log_level
@return [Symbol] (default = :info) current logger level
# File lib/chambermaid/base.rb, line 132 def log_level=(val = :info) @logger.level = val unless @logger.nil? @log_level = val val end
logger()
click to toggle source
!@attribute [r] logger
@return [Logger]
# File lib/chambermaid/base.rb, line 107 def logger @logger ||= Logger.new(STDOUT, level: log_level, progname: "Chambermaid" ) end
logger=(val)
click to toggle source
!@attribute [w] logger
@return [Logger]
# File lib/chambermaid/base.rb, line 116 def logger=(val) @logger = val @logger.progname = "Chambermaid" logger end
reload!()
click to toggle source
@todo
# File lib/chambermaid/base.rb, line 28 def reload! @namespaces.each(&:reload!) end
restore!()
click to toggle source
Restore ENV to its original state
# File lib/chambermaid/base.rb, line 37 def restore! ENV.replace(@@_original_env) end
Also aliased as: reset!
unload!()
click to toggle source
# File lib/chambermaid/base.rb, line 32 def unload! @namespaces.each(&:unload!) end
Private Instance Methods
namespaces()
click to toggle source
# File lib/chambermaid/base.rb, line 140 def namespaces @namespaces ||= [] end