module Configureasy::Configurable
Allows loading of different configuration files.
class Dumb include Configureasy # create class method _config_ with content of config/config.yml load_config :config # create class method _secrets_ with content for config/session_secrets.yml load_config :session_secrets, as: :secrets # create class method _aws_keys_ with content for './aws/keys.yml' load_config :keys, as: :aws_keys, path: './aws' end
Public Instance Methods
config_filename(filename = nil)
click to toggle source
@deprecated Please use {#load_config} instead. Load config in specific location. Params
[+filename+]:: config filename # load contents for /etc/my_configs.yml config_filename '/etc/my_configs.yml'
# File lib/configureasy/configurable.rb, line 54 def config_filename(filename = nil) warn "[DEPRECATION] `config_filename` is deprecated. Please use `load_config` instead." basename = File.basename(filename, '.yml') path = File.dirname(filename) load_config basename, as: 'config', path: path end
config_name(name = nil)
click to toggle source
@deprecated Please use {#load_config} instead. Setting config source filename. Params:
[+name+]:: the name of config file # load contents for ./config/foo.yml config_name :foo # load contents for ./config/bar.yml config_name :bar
# File lib/configureasy/configurable.rb, line 42 def config_name(name = nil) warn "[DEPRECATION] `config_name` is deprecated. Please use `load_config` instead." load_config name, as: 'config' end
load_config(file_basename, options = {})
click to toggle source
dinamically create method for access config data. Params:
[+file_basename+]:: config file name (by default in *config* directory) [+as+]:: generated method name (by default same as file_basename) [+path+]:: config path (by default './config')
# File lib/configureasy/configurable.rb, line 25 def load_config(file_basename, options = {}) name = options[:as] || file_basename path = options[:path] || './config' filename = File.join path, "#{file_basename}.yml" _configurable_init(name, filename) end
Private Instance Methods
_configurable_hash(method_name)
click to toggle source
# File lib/configureasy/configurable.rb, line 79 def _configurable_hash(method_name) @@configurables[_configurable_key(method_name)] end
_configurable_init(method_name, filename)
click to toggle source
# File lib/configureasy/configurable.rb, line 63 def _configurable_init(method_name, filename) @@configurables[_configurable_key(method_name)] = { filename: filename, payload: nil } return if self.class.respond_to? method_name self.class.send(:define_method, method_name) do _configurable_for(method_name) end self.class.send(:define_method, "#{method_name}_reload!") do _configurable_reload(method_name) end end
_configurable_key(method_name)
click to toggle source
# File lib/configureasy/configurable.rb, line 75 def _configurable_key(method_name) "#{self}.#{method_name}" end