joshuaflanagan/ruse — pull request #1 by ntl (2014-03-08 19:18:40+00:00)
Title: Handle :opt, :key, :keyreq arguments; ignore rest

* :keyreq behaves just like :key

* :opt and :key get auto injected if the injector knows how - this
means when your initializer supplies a default argument, ruse will
override the default when it knows how, otherwise it will let ruby
use the default.

* There are other types of arguments, :rest (*args), :keyrest
(**params), and :block (&block). ObjectFactory ignores these types
of arguments, which means the object *will* get built by the
injector.

* Introduce an Initializer object that can sift through each of the
initializer method arguments, knowing how to resolve dependencies
for each one.