Module: Mixlib::Config
- Defined in:
- lib/mixlib/config.rb
Constant Summary collapse
- @@configuration =
Hash.new
Instance Method Summary collapse
-
#[](config_option) ⇒ Object
Get the value of a configuration option.
-
#[]=(config_option, value) ⇒ Object
Set the value of a configuration option.
-
#configure(&block) ⇒ Object
Pass Mixlib::Config.configure() a block, and it will yield @@configuration.
-
#from_file(filename) ⇒ Object
Loads a given ruby file, and runs instance_eval against it in the context of the current object.
-
#has_key?(key) ⇒ Boolean
Check if Mixlib::Config has a configuration option.
-
#hash_dup ⇒ Object
Creates a shallow copy of the internal hash.
-
#keys ⇒ Object
Return the set of config hash keys.
-
#merge!(hash) ⇒ Object
Merge an incoming hash with our config options.
-
#method_missing(method_symbol, *args) ⇒ Object
Allows for simple lookups and setting of configuration options via method calls on Mixlib::Config.
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_symbol, *args) ⇒ Object
Allows for simple lookups and setting of configuration options via method calls on Mixlib::Config. If there any arguments to the method, they are used to set the value of the configuration option. Otherwise, it’s a simple get operation.
Parameters
- method_symbol<Symbol>
-
The method called. Must match a configuration option.
- *args
-
Any arguments passed to the method
Returns
- value
-
The value of the configuration option.
Raises
- <ArgumentError>
-
If the method_symbol does not match a configuration option.
139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/mixlib/config.rb', line 139 def method_missing(method_symbol, *args) num_args = args.length # Setting if num_args > 0 method_symbol = $1.to_sym unless (method_symbol.to_s =~ /(.+)=$/).nil? @@configuration[method_symbol] = (num_args == 1 ? args[0] : args) end # Returning @@configuration[method_symbol] end |
Instance Method Details
#[](config_option) ⇒ Object
Get the value of a configuration option
Parameters
- config_option<Symbol>
-
The configuration option to return
Returns
- value
-
The value of the configuration option
Raises
- <ArgumentError>
-
If the configuration option does not exist
53 54 55 |
# File 'lib/mixlib/config.rb', line 53 def [](config_option) @@configuration[config_option.to_sym] end |
#[]=(config_option, value) ⇒ Object
Set the value of a configuration option
Parameters
- config_option<Symbol>
-
The configuration option to set (within the [])
- value
-
The value for the configuration option
Returns
- value
-
The new value of the configuration option
65 66 67 |
# File 'lib/mixlib/config.rb', line 65 def []=(config_option, value) internal_set(config_option,value) end |
#configure(&block) ⇒ Object
Pass Mixlib::Config.configure() a block, and it will yield @@configuration.
Parameters
- <block>
-
A block that is sent @@configuration as its argument
39 40 41 |
# File 'lib/mixlib/config.rb', line 39 def configure(&block) block.call(@@configuration) end |
#from_file(filename) ⇒ Object
Loads a given ruby file, and runs instance_eval against it in the context of the current object.
Raises an IOError if the file cannot be found, or is not readable.
Parameters
- <string>
-
A filename to read from
31 32 33 |
# File 'lib/mixlib/config.rb', line 31 def from_file(filename) self.instance_eval(IO.read(filename), filename, 1) end |
#has_key?(key) ⇒ Boolean
Check if Mixlib::Config has a configuration option.
Parameters
- key<Symbol>
-
The configuration option to check for
Returns
- <True>
-
If the configuration option exists
- <False>
-
If the configuration option does not exist
77 78 79 |
# File 'lib/mixlib/config.rb', line 77 def has_key?(key) @@configuration.has_key?(key.to_sym) end |
#hash_dup ⇒ Object
Creates a shallow copy of the internal hash
Returns
result of Hash#dup
104 105 106 |
# File 'lib/mixlib/config.rb', line 104 def hash_dup @@configuration.dup end |
#keys ⇒ Object
Return the set of config hash keys
Returns
result of Hash#keys
96 97 98 |
# File 'lib/mixlib/config.rb', line 96 def keys @@configuration.keys end |
#merge!(hash) ⇒ Object
Merge an incoming hash with our config options
Parameters
- hash<Hash>
-
The incoming hash
Returns
result of Hash#merge!
88 89 90 |
# File 'lib/mixlib/config.rb', line 88 def merge!(hash) @@configuration.merge!(hash) end |