1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
|
<html>
<head>
<title>File: README</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
<script type="text/javascript" language="JavaScript">
<!--
function toggleSource( id )
{
var elem
var link
if( document.all )
{
elem = eval( "document.all." + id )
link = eval( "document.all.l_" + id )
}
else
{
elem = document.getElementById( id )
link = document.getElementById( "l_" + id )
}
if( elem.style.display == "block" )
{
elem.style.display = "none"
link.innerHTML = "show source"
}
else
{
elem.style.display = "block"
link.innerHTML = "hide source"
}
}
function openCode( url )
{
window.open( url, "SOURCE_CODE", "width=400,height=400,scrollbars=yes" )
}
//-->
</script>
</head>
<body>
<table border='0' cellpadding='0' cellspacing='0' width="100%" class='banner'>
<tr><td>
<table width="100%" border='0' cellpadding='0' cellspacing='0'><tr>
<td class="file-title" colspan="2"><span class="file-title-prefix">File</span><br />README</td>
<td align="right">
<table border='0' cellspacing="0" cellpadding="2">
<tr>
<td>Path:</td>
<td>doc/README
</td>
</tr>
<tr>
<td>Modified:</td>
<td>Mon Oct 18 09:06:45 MDT 2004</td>
</tr>
</table>
</td></tr>
</table>
</td></tr>
</table><br>
<!-- banner header -->
<div id="content">
<div class="description"><h1><a href="../../classes/Needle.html">Needle</a> Dependency Injection Container</h1>
<p>
<a href="../../classes/Needle.html">Needle</a> is a Dependency Injection
container, similar in goal to <a
href="http://jakarta.apache.org/hivemind">HiveMind</a>, <a
href="http://www.springframework.org">Spring</a>, and <a
href="http://www.picocontainer.org">PicoContainer</a> (in the Java
universe), but vastly different in implementation. It takes advantage of
the dynamic features in Ruby, especially closures and
<tt>instance_eval</tt>.
</p>
<ul>
<li>Project page: <a
href="http://rubyforge.org/projects/needle">rubyforge.org/projects/needle</a>
</li>
<li>User Manual: <a href="http://needle.rubyforge.org">needle.rubyforge.org</a>
</li>
<li>API Documentation: <a
href="http://needle.rubyforge.org/api">needle.rubyforge.org/api</a>
</li>
<li><a href="../../classes/Needle.html">Needle</a> Wiki: <a
href="http://needle.rubyforge.org/wiki/wiki.pl">needle.rubyforge.org/wiki/wiki.pl</a>
</li>
</ul>
<p>
For an excellent overview of dependency injection, have a look at
"Dependency Injection in Ruby" (<a
href="di-in-ruby_rdoc.html">files/doc/di-in-ruby_rdoc.html</a>).
</p>
<h2>Downloading</h2>
<p>
You may download <a href="../../classes/Needle.html">Needle</a> from <a
href="../../classes/Needle.html">Needle</a>’s RubyForge project, at
<a
href="http://rubyforge.org/projects/needle">rubyforge.org/projects/needle</a>.
<a href="../../classes/Needle.html">Needle</a> is distributed both as a <a
href="http://rubygems.rubyforge.org">RubyGem</a>, and as a Ruby library. It
is also available from the <a href="http://rpa-base.rubyforge.org">RPA</a>.
</p>
<h2>Installation</h2>
<p>
<a href="../../classes/Needle.html">Needle</a> is distributed as a gem,
which makes it extremely easy to download, install, and use. However, it
requires that you have <a href="http://rubygems.rubyforge.org">RubyGems</a>
installed, first.
</p>
<p>
Assuming you have RubyGems installed, all you have to do is:
</p>
<pre>
gem --remote-install needle
</pre>
<p>
This will install the latest version of <a
href="../../classes/Needle.html">Needle</a>.
</p>
<p>
<a href="../../classes/Needle.html">Needle</a> is also distributed as a
Ruby library. It’s not as easy to install this way, but it works.
Simply grab the latest <a href="../../classes/Needle.html">Needle</a>
package from the website, untar it, and install it by typing:
</p>
<pre>
ruby setup.rb
</pre>
<p>
Or, if you want a little more control over the installation:
</p>
<pre>
ruby setup.rb --help
</pre>
<p>
This will show you the options that are available to you, and then you can
do each stage of the installation manually:
</p>
<pre>
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install
</pre>
<h2>Manual</h2>
<p>
For more information about <a href="../../classes/Needle.html">Needle</a>,
such as an overview and tutorials, see the <a
href="../../classes/Needle.html">Needle</a> manual at <a
href="http://needle.rubyforge.org">needle.rubyforge.org</a>.
</p>
<h2>Credits</h2>
<p>
Thanks go to:
</p>
<ul>
<li>Matz, for creating Ruby in the first place.
</li>
<li>Jim Weirich, for his inspirational blog article "Dependency Injection
in Ruby" (<a
href="http://onestepback.org/index.cgi/Tech/Ruby/DependencyInjectionInRuby.rdoc">onestepback.org/index.cgi/Tech/Ruby/DependencyInjectionInRuby.rdoc</a>)
that formed the embryo of what <a
href="../../classes/Needle.html">Needle</a> has eventually become.
</li>
</ul>
<h2>License</h2>
<p>
<a href="../../classes/Needle.html">Needle</a> is copyright © 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 <a href="../../classes/Needle.html">Needle</a> distribution, under
the <tt>doc</tt> subdirectory.
</p>
<p>
The <a href="../../classes/Needle.html">Needle</a> 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.
</p>
</div>
<!-- method descriptions -->
</div>
</body>
</html>
|