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