Maroon
A module to make pure DCI available in Ruby
Installation
Add this line to your application's Gemfile:
gem 'maroon'
And then execute:
$ bundle
Or install it yourself as:
$ gem install maroon
Usage
See the examples for detailed information on how to use maroon.
Essentially you can define a context by using
Context::define :context_name do role :role_name do print_self do |x| #notice no symbol p "#role_name #use role_name to refer to the role of said name end end end
Running Tests
If you're using Bundler, run bundle install
to setup your environment.
Run rake test
or just rake
to make the tests run.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Make your changes to the files in base.
- Make sure you can run the default rake task with no errors twice
- Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Known bugs There are a few known bugs. The two major once are that #... syntax in strings can't beused. This is due to limitaion/bug in the current version of sourcify. If declaring several role methods for the same role sourcify might get confused and return the same sexp for multiple of them. The work around is to use do...end for the role ans {|| } for the role methods