https://github.com/mbj/concord
Mixin to ease compositions in ruby
https://github.com/mbj/concord
Last synced: over 1 year ago
JSON representation
Mixin to ease compositions in ruby
- Host: GitHub
- URL: https://github.com/mbj/concord
- Owner: mbj
- License: mit
- Created: 2012-12-12T13:24:20.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2020-09-10T15:08:48.000Z (almost 6 years ago)
- Last Synced: 2024-10-30T03:42:46.273Z (over 1 year ago)
- Language: Ruby
- Homepage:
- Size: 71.3 KB
- Stars: 112
- Watchers: 9
- Forks: 6
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: Changelog.md
- License: LICENSE
Awesome Lists containing this project
README
concord
=======
[][https://rubygems.org/gems/concord]

Library to transform this:
```ruby
class ComposedObject
include Equalizer.new(:foo, :bar)
# Return foo
#
# @return [Foo]
#
# @api private
#
attr_reader :foo
protected :foo
# Return bar
#
# @return [Bar]
#
# @api private
#
attr_reader :bar
protected :bar
# Initialize object
#
# @param [Foo] foo
# @param [Bar] bar
#
# @return [undefined]
#
# @api private
#
def initialize(foo, bar)
@foo, @bar = foo, bar
end
end
```
Into shorter and easier to parse by eyes:
```ruby
class ComposedObject
include Concord.new(:foo, :bar)
end
```
You can still add YARD docs for generated interface.
Rubies
------
Tested under all >= 1.9 rubies.
Installation
------------
Install the gem `concord` via your preferred method.
Credits
-------
* [mbj](https://github.com/mbj)
Contributing
-------------
* Fork the project.
* Make your feature addition or bug fix.
* Add tests for it. This is important so I don't break it in a
future version unintentionally.
* Commit, do not mess with Rakefile or version
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
* Send me a pull request. Bonus points for topic branches.
License
-------
See LICENSE