Class: Aho::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/aho/configuration.rb

Constant Summary collapse

DEFAULT_CONFIG_FILE_PATH =
File.expand_path('../../config/default.aho.yml', __dir__)
CONFIG_FILE_PATH =
File.expand_path('../../config/aho.yml', __dir__)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



10
11
12
13
14
15
# File 'lib/aho/configuration.rb', line 10

def initialize
  reset unless File.exist?(CONFIG_FILE_PATH)
  raw_settings = YAML.load_file(CONFIG_FILE_PATH)
  rich_settings = process_env_variables(raw_settings)
  @settings = DotHash.new(rich_settings)
end

Instance Attribute Details

#settingsObject (readonly)

Returns the value of attribute settings.



8
9
10
# File 'lib/aho/configuration.rb', line 8

def settings
  @settings
end

Instance Method Details

#resetObject



22
23
24
25
# File 'lib/aho/configuration.rb', line 22

def reset
  File.write(CONFIG_FILE_PATH, File.read(DEFAULT_CONFIG_FILE_PATH))
  @settings = DotHash.new(default_settings)
end

#update(new_settings) ⇒ Object



17
18
19
20
# File 'lib/aho/configuration.rb', line 17

def update(new_settings)
  @settings.deep_merge!(new_settings.stringify_keys.slice(*default_settings.keys))
  File.write(CONFIG_FILE_PATH, @settings.to_h.to_yaml)
end