Class: Rdm::Settings

Inherits:
Object
  • Object
show all
Defined in:
lib/rdm/settings.rb

Constant Summary collapse

SETTING_KEYS =
[
  :role, :package_subdir_name, :configs_dir, :config_path, :role_config_path,
  :silence_missing_package_file, :silence_missing_package
].freeze
SETTING_VARIABLES =
[:role, :configs_dir, :config_path, :role_config_path].freeze

Instance Method Summary collapse

Constructor Details

#initializeSettings

Default settings



10
11
12
13
14
15
# File 'lib/rdm/settings.rb', line 10

def initialize
  silence_missing_package(false)
  silence_missing_package_file(false)
  package_subdir_name('package')
  configs_dir('configs')
end

Instance Method Details

#fetch_setting(key, value = nil, &block) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/rdm/settings.rb', line 23

def fetch_setting(key, value = nil, &block)
  if value.nil? && !block_given?
    read_setting(key)
  else
    write_setting(key, value || block)
  end
end

#read_setting(key, vars: {}) ⇒ Object



31
32
33
34
35
36
37
38
39
40
# File 'lib/rdm/settings.rb', line 31

def read_setting(key, vars: {})
  value = @settings[key.to_s]
  if value.is_a?(Proc)
    value.call
  elsif value.is_a?(String)
    replace_variables(value, except: key, additional_vars: vars)
  else
    value
  end
end