summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md41
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!