diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..980f551 --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +## Mixlib::Config + +Mixlib::Config provides a class-based configuration object, as used in Chef. To use in your project: + + require 'rubygems' + require 'mixlib/config' + + class MyConfig + extend(Mixlib::Config) + configure do |c| + c[:first_value] = 'something' + c[:other_value] = 'something_else' + end + end + +Or... + + class MyConfig + extend(Mixlib::Config) + + first_value 'something' + other_value 'something_else' + end + +To check a configuration variable: + + MyConfig.first_value # returns 'something' + MyConfig[:first_value] # returns 'something' + +To change a configuration variable at runtime: + + MyConfig.first_value('foobar') # sets first_value to 'foobar' + MyConfig[:first_value] = 'foobar' # sets first_value to 'foobar' + +You should populate your class with the default values for every configuration variable that might be accessed. If you try and access a variable that does not exist, Mixlib::Config will throw an <ArgumentError>. + +To load a ruby configuration file (which will evaluate in the context of your configuration class): + + MyConfig.from_file('your_config_file.rb') + +Enjoy! |