Dependo
Dependo is a very simple Dependency Injection framework for Ruby. Some say you don't need dependency injection when you're using Ruby. Maybe they're right, but I've come across some places where I need it.
For example, in my apps using Sinatra and Sequel, I need to be able to log, using a single Logger instance, from both my Sinatra app and from within my Sequel models. I'm not about to pass that Logger around as a parameter anywhere, and I don't want to instantiate it in every class that needs to log.
So, injecting the Logger is the easiest, best solution.
Requirements/Installation
Dependo doesn't depend on anything. In test, it relies on rspec and either rcov (Ruby 1.8) or simplecov (Ruby 1.9).
Install the gem: gem install dependo-(version).gem
Running the tests:
rake spec
Building the gem:
rake gem:build
Install gem with Rake:
rake gem:install
Usage
Register
Dependo::Registry[:log] = Logger.new(STDOUT)
Include
This makes it easy to use your injected dependencies as instance methods:
class MyThing
include Dependo::Mixin
end
thing = MyThing.new
thing.log.info "I'm logging!"
Extend
This makes it easy to use your injected dependencies as class methods:
class MyThing
extend Dependo::Mixin
end
MyThing.log.info "I'm logging!"
License
See the LICENSE file. Licensed under the Apache 2.0 License