Module: Configureasy::Configurable

Defined in:
lib/configureasy/configurable.rb

Overview

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

Constant Summary collapse

@@configurables =
{}

Instance Method Summary collapse

Instance Method Details

#config_filename(filename = nil) ⇒ Object

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'


54
55
56
57
58
59
# 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) ⇒ Object

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


42
43
44
45
# 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 = {}) ⇒ Object

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')


25
26
27
28
29
30
# 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