Sha256: 087895e20f8c6c47fcea656ea30189d04546d190a5c2cbfddf7f0f2d780f8a7d
Contents?: true
Size: 1000 Bytes
Versions: 9
Compression:
Stored size: 1000 Bytes
Contents
require 'yaml' module EzConfig class ConfigLoader def initialize(logger) @logger = logger load_ez_config load_project_config load_local_overrides @api_config = Concurrent::Map.new @immutable_config = @ez_config.merge(@project_config) end def calc_config rtn = @immutable_config.clone @api_config.each_key do |k| rtn[k] = @api_config[k] end rtn = rtn.merge(@local_overrides) rtn end def set(delta) @api_config[delta.key] = delta.value end private def load_ez_config @ez_config = load(".ezconfig.yaml") end def load_project_config @project_config = load(".projectconfig.yaml") end def load_local_overrides @local_overrides = load(".ezconfig.overrides.yaml") end def load(filename) if File.exist? filename YAML.load_file(filename) else @logger.info "No file #{filename}" {} end end end end
Version data entries
9 entries across 9 versions & 1 rubygems