multidispatch
Very basic multidispatch in Ruby using natural syntax. Currently supports overloads by count of mandatory parameters. So, it solves only one problem. Converts the following code:
class BoilerplateClass
def foo(a = nil, b = nil)
unless a || b
# do action 1
# ...
end
if a && !b
# do action 2
# ...
end
if a && b
# do action 3
# ...
end
end
end
to this nice one:
class MultidispatchClass
include Multidispatch
def foo
# do action 1
# ...
end
def foo(a)
# do action 2
# ...
end
def foo(a,b)
# do action 3
# ...
end
end
Installation
Add this line to your application's Gemfile:
gem 'multidispatch'
And then execute:
$ bundle
Or install it yourself as:
$ gem install multidispatch
Usage
See sample/ folder:
- morning.rb - sample class using multidispatch module
- main.rb - quick CLI test for Morning
- Gemfile - sample gemfile
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
... do not forget tests ... and Happy Hacking!