Module: DWH::Settings
Overview
Functions related to loading and managing the Adapters settings. These settings should by default have the same name as the adapter but lower case and no camelcase. i.e. MySql adapter has a settings file called mysql.yml.
When creating a new adapter copy settings/basesettings/base.yml and modify it to suit your adapters needs.
An adapters settings are merged into the base settings config. So each adapter doesn’t have to define every property when they are the same.
By default the file will be looked for in relative location like settings/myadapter.yml. However, you can specify the locastion with (@see #settings_file_path)
Constant Summary collapse
- BASE_SETTINGS_FILE =
This is the default base settings that each adapter can override with its own yaml files.
File.join(__dir__, 'settings', 'base.yml')
Instance Attribute Summary collapse
-
#adapter_settings ⇒ Object
readonly
Gets the current loaded adatper settings.
Instance Method Summary collapse
- #adapter_name ⇒ Object
-
#load_settings ⇒ Object
This will load adapter level settings.
-
#settings_file ⇒ Object
By default settings_file are expected to be in a relative directory called settings.
-
#settings_file_path(file) ⇒ Object
Allows the manual configuration of where to load default database settings from.
- #using_base_settings? ⇒ Boolean
Methods included from Logger
Instance Attribute Details
#adapter_settings ⇒ Object (readonly)
Gets the current loaded adatper settings. If nil, then load_settings hasn’t been called.
22 23 24 |
# File 'lib/dwh/settings.rb', line 22 def adapter_settings @adapter_settings end |
Instance Method Details
#adapter_name ⇒ Object
71 72 73 |
# File 'lib/dwh/settings.rb', line 71 def adapter_name name.demodulize.downcase end |
#load_settings ⇒ Object
This will load adapter level settings. These settings can be overridden at runtime by calling alter_settings after an adapter is initialized.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/dwh/settings.rb', line 31 def load_settings return unless @adapter_settings.nil? logger.debug "+++ LOADING SETTINGS: #{name} +++" @using_base = true @adapter_settings = YAML.load_file(BASE_SETTINGS_FILE) if File.exist?(settings_file) @using_base = false settings_from_file = YAML.load_file(settings_file) || {} @adapter_settings.merge!(settings_from_file) else logger.debug "#{adapter_name} Adapter didn't have a settings YAML file. Using only base settings." end @adapter_settings.symbolize_keys! end |
#settings_file ⇒ Object
By default settings_file are expected to be in a relative directory called settings. If not, change the settings file with call to settings_file_path FILE_PATH
53 54 55 |
# File 'lib/dwh/settings.rb', line 53 def settings_file @settings_file ||= File.join(__dir__, 'settings', "#{adapter_name}.yml") end |
#settings_file_path(file) ⇒ Object
Allows the manual configuration of where to load default database settings from.
It will reload settings if adapter settings has already been loaded.
63 64 65 66 67 68 69 |
# File 'lib/dwh/settings.rb', line 63 def settings_file_path(file) @settings_file = file return if @adapter_settings.nil? @adapter_settings = nil load_settings end |
#using_base_settings? ⇒ Boolean
75 76 77 |
# File 'lib/dwh/settings.rb', line 75 def using_base_settings? @using_base end |