Class: Unifig::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/unifig/config.rb

Instance Method Summary collapse

Constructor Details

#initialize(config, env: nil) ⇒ Config

Returns a new instance of Config.

Raises:



7
8
9
10
11
12
13
14
# File 'lib/unifig/config.rb', line 7

def initialize(config, env: nil)
  raise MissingConfigError, 'no configuration provided' unless config

  @env_config = config.slice(:providers)
  @env = env

  @env_config.merge!(config.dig(:envs, env) || {}) if @env
end

Instance Method Details

#provider_config(name) ⇒ Object



29
30
31
32
33
# File 'lib/unifig/config.rb', line 29

def provider_config(name)
  return {} unless @env_config[:providers].is_a?(Hash)

  @env_config.dig(:providers, :config, name) || {}
end

#providersObject



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/unifig/config.rb', line 16

def providers
  return @providers if defined?(@providers)

  providers =
    if @env_config[:providers].is_a?(Hash)
      @env_config.dig(:providers, :list)
    else
      @env_config[:providers]
    end

  @providers = Array(providers).map(&:to_sym).freeze
end