= Needle Dependency Injection Container
Needle is a Dependency Injection container, similar in goal to
HiveMind[http://jakarta.apache.org/hivemind],
Spring[http://www.springframework.org], and
PicoContainer[http://www.picocontainer.org] (in the Java universe), but vastly
different in implementation. It takes advantage of the dynamic features in Ruby, especially
closures and +instance_eval+.
For an excellent overview of dependency injection, have a look at "Dependency Injection in Ruby" (link:files/doc/di-in-ruby_rdoc.html).
== Downloading
You may download Needle from Needle's RubyForge project, at http://rubyforge.org/projects/needle.
Needle is distributed both as a RubyGem[http://rubygems.rubyforge.org], and as a Ruby library.
It is also available from the RPA[http://rpa-base.rubyforge.org].
== Installation
Needle is distributed as a gem, which makes it extremely easy to download, install, and
use. However, it requires that you have RubyGems[http://rubygems.rubyforge.org] installed,
first.
Assuming you have RubyGems installed, all you have to do is:
gem --remote-install needle
This will install the latest version of Needle.
Needle is also distributed as a Ruby library. It's not as easy to install this way,
but it works. Simply grab the latest Needle package from the website, untar it, and
install it by typing:
ruby setup.rb
Or, if you want a little more control over the installation:
ruby setup.rb --help
This will show you the options that are available to you, and then you can do each stage
of the installation manually:
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install
== Manual
For more information about Needle, such as an overview and tutorials, see the Needle
manual at http://needle.rubyforge.org.
== Credits
Thanks go to:
== License
Needle is copyright (c) 2004 Jamis Buck. It is open-source software, and may be redistributed
under the terms of the BSD or Ruby licenses. The texts of these licences are included in the
Needle distribution, under the +doc+ subdirectory.
The Needle manual and all software used to build it are distributed under the
Attribution-ShareAlike 1.0 Creative Commons license. Distribute it and modify it all you
want, but give me credit and distribute your changes under an identical license.