README.md in attr_defaultable-0.0.1 vs README.md in attr_defaultable-0.0.2

- old
+ new

@@ -1,29 +1,56 @@ # AttrDefaultable -TODO: Write a gem description +Easily add attributes with default values to your classes. ## Installation Add this line to your application's Gemfile: gem 'attr_defaultable' +To optionally slip attr_defaultable into Module so it is available without extending: + + gem 'attr_defaultable', require: 'extend_attr_defaultable' + And then execute: $ bundle Or install it yourself as: $ gem install attr_defaultable ## Usage -TODO: Write usage instructions here +```ruby +class Example + extend AttrDefaultable + attr_defaultable :foo, -> { 'bar' } +end +``` +This will create a getter/setter pair for your variable `foo`. If the setter is not used before the getter +the proc given will be called and it's result used to set the value of `foo`. + +Very useful for creating dependency definitions with protected default values that are evaluated just in time. + +## Alternate Usage + +By using the alternate gem declaration in your Gemfile or manually +requiring `extend_attr_defaultable` early in your application, you can avoid the explicit `extend` +in your class. + +```ruby +class Example + attr_defaultable :foo, -> { 'bar' } +end +``` + + ## Contributing -1. Fork it ( http://github.com/<my-github-username>/attr_defaultable/fork ) +1. Fork it ( http://github.com/Originate/attr_defaultable/fork ) 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create new Pull Request