needle 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. data/doc/LICENSE-BSD +27 -0
  2. data/doc/LICENSE-GPL +280 -0
  3. data/doc/LICENSE-RUBY +56 -0
  4. data/doc/README +70 -0
  5. data/doc/manual/chapter.erb +18 -0
  6. data/doc/manual/index.erb +29 -0
  7. data/doc/manual/manual.css +192 -0
  8. data/doc/manual/manual.rb +240 -0
  9. data/doc/manual/manual.yml +48 -0
  10. data/doc/manual/page.erb +86 -0
  11. data/doc/manual/parts/01_license.txt +5 -0
  12. data/doc/manual/parts/01_support.txt +1 -0
  13. data/doc/manual/parts/01_use_cases.txt +141 -0
  14. data/doc/manual/parts/01_what_is_needle.txt +1 -0
  15. data/doc/manual/parts/02_creating.txt +9 -0
  16. data/doc/manual/parts/02_namespaces.txt +47 -0
  17. data/doc/manual/parts/02_overview.txt +3 -0
  18. data/doc/manual/parts/02_services.txt +44 -0
  19. data/doc/manual/tutorial.erb +30 -0
  20. data/doc/manual-html/chapter-1.html +354 -0
  21. data/doc/manual-html/chapter-2.html +310 -0
  22. data/doc/manual-html/chapter-3.html +154 -0
  23. data/doc/manual-html/chapter-4.html +154 -0
  24. data/doc/manual-html/chapter-5.html +154 -0
  25. data/doc/manual-html/chapter-6.html +154 -0
  26. data/doc/manual-html/chapter-7.html +154 -0
  27. data/doc/manual-html/index.html +177 -0
  28. data/doc/manual-html/manual.css +192 -0
  29. data/lib/needle/container.rb +318 -0
  30. data/lib/needle/errors.rb +32 -0
  31. data/lib/needle/include-exclude.rb +116 -0
  32. data/lib/needle/interceptor-chain.rb +162 -0
  33. data/lib/needle/interceptor.rb +189 -0
  34. data/lib/needle/log-factory.rb +207 -0
  35. data/lib/needle/logger.rb +161 -0
  36. data/lib/needle/logging-interceptor.rb +62 -0
  37. data/lib/needle/models/prototype-deferred.rb +41 -0
  38. data/lib/needle/models/prototype.rb +39 -0
  39. data/lib/needle/models/proxy.rb +84 -0
  40. data/lib/needle/models/singleton-deferred.rb +57 -0
  41. data/lib/needle/models/singleton.rb +56 -0
  42. data/lib/needle/models.rb +44 -0
  43. data/lib/needle/registry.rb +110 -0
  44. data/lib/needle/service-point.rb +109 -0
  45. data/lib/needle/version.rb +28 -0
  46. data/lib/needle.rb +54 -0
  47. data/test/ALL-TESTS.rb +21 -0
  48. data/test/models/tc_prototype.rb +53 -0
  49. data/test/models/tc_prototype_deferred.rb +54 -0
  50. data/test/models/tc_proxy.rb +51 -0
  51. data/test/models/tc_singleton.rb +53 -0
  52. data/test/models/tc_singleton_deferred.rb +54 -0
  53. data/test/tc_container.rb +246 -0
  54. data/test/tc_interceptor.rb +92 -0
  55. data/test/tc_interceptor_chain.rb +181 -0
  56. data/test/tc_logger.rb +181 -0
  57. data/test/tc_models.rb +44 -0
  58. data/test/tc_registry.rb +34 -0
  59. data/test/tc_service_point.rb +100 -0
  60. metadata +107 -0
@@ -0,0 +1,154 @@
1
+ <html>
2
+ <head>
3
+ <title>Needle Manual :: Chapter 3: Dependency Injection</title>
4
+ <link type="text/css" rel="stylesheet" href="manual.css" />
5
+ </head>
6
+
7
+ <body>
8
+ <div id="banner">
9
+ <table border='0' cellpadding='0' cellspacing='0' width='100%'>
10
+ <tr><td valign='top' align='left'>
11
+ <div class="title">
12
+ <span class="product">Needle&mdash;</span><br />
13
+ <span class="tagline">to the point --></span>
14
+ </div>
15
+ </td><td valign='middle' align='right'>
16
+ <div class="info">
17
+ Needle Version: <strong>0.5.0</strong><br />
18
+ Manual Last Updated: <strong>2004-10-15 03:41 GMT</strong>
19
+ </div>
20
+ </td></tr>
21
+ </table>
22
+ </div>
23
+
24
+ <table border='0' width='100%' cellpadding='0' cellspacing='0'>
25
+ <tr><td valign='top'>
26
+
27
+ <div id="navigation">
28
+ <h1>Needle Manual</h1>
29
+
30
+ <h2>Chapters</h2>
31
+ <ol type="I">
32
+
33
+ <li>
34
+ <a href="chapter-1.html">
35
+ Introduction
36
+ </a>
37
+
38
+ <ol type="1">
39
+
40
+ <li><a href="chapter-1.html#s1">What is Needle?</a></li>
41
+
42
+ <li><a href="chapter-1.html#s2">How Can It Help Me?</a></li>
43
+
44
+ <li><a href="chapter-1.html#s3">License Information</a></li>
45
+
46
+ <li><a href="chapter-1.html#s4">Support</a></li>
47
+
48
+ </ol>
49
+ </li>
50
+
51
+ <li>
52
+ <a href="chapter-2.html">
53
+ Registry
54
+ </a>
55
+
56
+ <ol type="1">
57
+
58
+ <li><a href="chapter-2.html#s1">Overview</a></li>
59
+
60
+ <li><a href="chapter-2.html#s2">Creating</a></li>
61
+
62
+ <li><a href="chapter-2.html#s3">Services</a></li>
63
+
64
+ <li><a href="chapter-2.html#s4">Namespaces</a></li>
65
+
66
+ </ol>
67
+ </li>
68
+
69
+ <li><strong>
70
+ <a href="chapter-3.html">
71
+ Dependency Injection
72
+ </a>
73
+ </strong> <big>&larr;</big>
74
+ <ol type="1">
75
+
76
+ </ol>
77
+ </li>
78
+
79
+ <li>
80
+ <a href="chapter-4.html">
81
+ Interceptors
82
+ </a>
83
+
84
+ <ol type="1">
85
+
86
+ </ol>
87
+ </li>
88
+
89
+ <li>
90
+ <a href="chapter-5.html">
91
+ Service Models
92
+ </a>
93
+
94
+ <ol type="1">
95
+
96
+ </ol>
97
+ </li>
98
+
99
+ <li>
100
+ <a href="chapter-6.html">
101
+ Logging
102
+ </a>
103
+
104
+ <ol type="1">
105
+
106
+ </ol>
107
+ </li>
108
+
109
+ <li>
110
+ <a href="chapter-7.html">
111
+ Creating Libraries
112
+ </a>
113
+
114
+ <ol type="1">
115
+
116
+ </ol>
117
+ </li>
118
+
119
+ </ol>
120
+
121
+ <h2>API Reference</h2>
122
+
123
+ <ul>
124
+ <li><a href="http://needle.rubyforge.org/api/index.html">Needle API</a></li>
125
+ </ul>
126
+
127
+ <h2>Tutorials</h2>
128
+ <ol>
129
+
130
+ </ol>
131
+
132
+ <p align="center"><strong>More To Come...</strong></p>
133
+
134
+ <div class="license">
135
+ <a href="http://creativecommons.org/licenses/by-sa/2.0/"><img alt="Creative Commons License" border="0" src="http://creativecommons.org/images/public/somerights" /></a><br />
136
+ This manual is licensed under a <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons License</a>.
137
+ </div>
138
+ </div>
139
+
140
+ </td><td valign='top' width="100%">
141
+
142
+ <div id="content">
143
+
144
+ <h1>3. Dependency Injection</h1>
145
+
146
+
147
+
148
+
149
+ </div>
150
+
151
+ </td></tr>
152
+ </table>
153
+ </body>
154
+ </html>
@@ -0,0 +1,154 @@
1
+ <html>
2
+ <head>
3
+ <title>Needle Manual :: Chapter 4: Interceptors</title>
4
+ <link type="text/css" rel="stylesheet" href="manual.css" />
5
+ </head>
6
+
7
+ <body>
8
+ <div id="banner">
9
+ <table border='0' cellpadding='0' cellspacing='0' width='100%'>
10
+ <tr><td valign='top' align='left'>
11
+ <div class="title">
12
+ <span class="product">Needle&mdash;</span><br />
13
+ <span class="tagline">to the point --></span>
14
+ </div>
15
+ </td><td valign='middle' align='right'>
16
+ <div class="info">
17
+ Needle Version: <strong>0.5.0</strong><br />
18
+ Manual Last Updated: <strong>2004-10-15 03:41 GMT</strong>
19
+ </div>
20
+ </td></tr>
21
+ </table>
22
+ </div>
23
+
24
+ <table border='0' width='100%' cellpadding='0' cellspacing='0'>
25
+ <tr><td valign='top'>
26
+
27
+ <div id="navigation">
28
+ <h1>Needle Manual</h1>
29
+
30
+ <h2>Chapters</h2>
31
+ <ol type="I">
32
+
33
+ <li>
34
+ <a href="chapter-1.html">
35
+ Introduction
36
+ </a>
37
+
38
+ <ol type="1">
39
+
40
+ <li><a href="chapter-1.html#s1">What is Needle?</a></li>
41
+
42
+ <li><a href="chapter-1.html#s2">How Can It Help Me?</a></li>
43
+
44
+ <li><a href="chapter-1.html#s3">License Information</a></li>
45
+
46
+ <li><a href="chapter-1.html#s4">Support</a></li>
47
+
48
+ </ol>
49
+ </li>
50
+
51
+ <li>
52
+ <a href="chapter-2.html">
53
+ Registry
54
+ </a>
55
+
56
+ <ol type="1">
57
+
58
+ <li><a href="chapter-2.html#s1">Overview</a></li>
59
+
60
+ <li><a href="chapter-2.html#s2">Creating</a></li>
61
+
62
+ <li><a href="chapter-2.html#s3">Services</a></li>
63
+
64
+ <li><a href="chapter-2.html#s4">Namespaces</a></li>
65
+
66
+ </ol>
67
+ </li>
68
+
69
+ <li>
70
+ <a href="chapter-3.html">
71
+ Dependency Injection
72
+ </a>
73
+
74
+ <ol type="1">
75
+
76
+ </ol>
77
+ </li>
78
+
79
+ <li><strong>
80
+ <a href="chapter-4.html">
81
+ Interceptors
82
+ </a>
83
+ </strong> <big>&larr;</big>
84
+ <ol type="1">
85
+
86
+ </ol>
87
+ </li>
88
+
89
+ <li>
90
+ <a href="chapter-5.html">
91
+ Service Models
92
+ </a>
93
+
94
+ <ol type="1">
95
+
96
+ </ol>
97
+ </li>
98
+
99
+ <li>
100
+ <a href="chapter-6.html">
101
+ Logging
102
+ </a>
103
+
104
+ <ol type="1">
105
+
106
+ </ol>
107
+ </li>
108
+
109
+ <li>
110
+ <a href="chapter-7.html">
111
+ Creating Libraries
112
+ </a>
113
+
114
+ <ol type="1">
115
+
116
+ </ol>
117
+ </li>
118
+
119
+ </ol>
120
+
121
+ <h2>API Reference</h2>
122
+
123
+ <ul>
124
+ <li><a href="http://needle.rubyforge.org/api/index.html">Needle API</a></li>
125
+ </ul>
126
+
127
+ <h2>Tutorials</h2>
128
+ <ol>
129
+
130
+ </ol>
131
+
132
+ <p align="center"><strong>More To Come...</strong></p>
133
+
134
+ <div class="license">
135
+ <a href="http://creativecommons.org/licenses/by-sa/2.0/"><img alt="Creative Commons License" border="0" src="http://creativecommons.org/images/public/somerights" /></a><br />
136
+ This manual is licensed under a <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons License</a>.
137
+ </div>
138
+ </div>
139
+
140
+ </td><td valign='top' width="100%">
141
+
142
+ <div id="content">
143
+
144
+ <h1>4. Interceptors</h1>
145
+
146
+
147
+
148
+
149
+ </div>
150
+
151
+ </td></tr>
152
+ </table>
153
+ </body>
154
+ </html>
@@ -0,0 +1,154 @@
1
+ <html>
2
+ <head>
3
+ <title>Needle Manual :: Chapter 5: Service Models</title>
4
+ <link type="text/css" rel="stylesheet" href="manual.css" />
5
+ </head>
6
+
7
+ <body>
8
+ <div id="banner">
9
+ <table border='0' cellpadding='0' cellspacing='0' width='100%'>
10
+ <tr><td valign='top' align='left'>
11
+ <div class="title">
12
+ <span class="product">Needle&mdash;</span><br />
13
+ <span class="tagline">to the point --></span>
14
+ </div>
15
+ </td><td valign='middle' align='right'>
16
+ <div class="info">
17
+ Needle Version: <strong>0.5.0</strong><br />
18
+ Manual Last Updated: <strong>2004-10-15 03:41 GMT</strong>
19
+ </div>
20
+ </td></tr>
21
+ </table>
22
+ </div>
23
+
24
+ <table border='0' width='100%' cellpadding='0' cellspacing='0'>
25
+ <tr><td valign='top'>
26
+
27
+ <div id="navigation">
28
+ <h1>Needle Manual</h1>
29
+
30
+ <h2>Chapters</h2>
31
+ <ol type="I">
32
+
33
+ <li>
34
+ <a href="chapter-1.html">
35
+ Introduction
36
+ </a>
37
+
38
+ <ol type="1">
39
+
40
+ <li><a href="chapter-1.html#s1">What is Needle?</a></li>
41
+
42
+ <li><a href="chapter-1.html#s2">How Can It Help Me?</a></li>
43
+
44
+ <li><a href="chapter-1.html#s3">License Information</a></li>
45
+
46
+ <li><a href="chapter-1.html#s4">Support</a></li>
47
+
48
+ </ol>
49
+ </li>
50
+
51
+ <li>
52
+ <a href="chapter-2.html">
53
+ Registry
54
+ </a>
55
+
56
+ <ol type="1">
57
+
58
+ <li><a href="chapter-2.html#s1">Overview</a></li>
59
+
60
+ <li><a href="chapter-2.html#s2">Creating</a></li>
61
+
62
+ <li><a href="chapter-2.html#s3">Services</a></li>
63
+
64
+ <li><a href="chapter-2.html#s4">Namespaces</a></li>
65
+
66
+ </ol>
67
+ </li>
68
+
69
+ <li>
70
+ <a href="chapter-3.html">
71
+ Dependency Injection
72
+ </a>
73
+
74
+ <ol type="1">
75
+
76
+ </ol>
77
+ </li>
78
+
79
+ <li>
80
+ <a href="chapter-4.html">
81
+ Interceptors
82
+ </a>
83
+
84
+ <ol type="1">
85
+
86
+ </ol>
87
+ </li>
88
+
89
+ <li><strong>
90
+ <a href="chapter-5.html">
91
+ Service Models
92
+ </a>
93
+ </strong> <big>&larr;</big>
94
+ <ol type="1">
95
+
96
+ </ol>
97
+ </li>
98
+
99
+ <li>
100
+ <a href="chapter-6.html">
101
+ Logging
102
+ </a>
103
+
104
+ <ol type="1">
105
+
106
+ </ol>
107
+ </li>
108
+
109
+ <li>
110
+ <a href="chapter-7.html">
111
+ Creating Libraries
112
+ </a>
113
+
114
+ <ol type="1">
115
+
116
+ </ol>
117
+ </li>
118
+
119
+ </ol>
120
+
121
+ <h2>API Reference</h2>
122
+
123
+ <ul>
124
+ <li><a href="http://needle.rubyforge.org/api/index.html">Needle API</a></li>
125
+ </ul>
126
+
127
+ <h2>Tutorials</h2>
128
+ <ol>
129
+
130
+ </ol>
131
+
132
+ <p align="center"><strong>More To Come...</strong></p>
133
+
134
+ <div class="license">
135
+ <a href="http://creativecommons.org/licenses/by-sa/2.0/"><img alt="Creative Commons License" border="0" src="http://creativecommons.org/images/public/somerights" /></a><br />
136
+ This manual is licensed under a <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons License</a>.
137
+ </div>
138
+ </div>
139
+
140
+ </td><td valign='top' width="100%">
141
+
142
+ <div id="content">
143
+
144
+ <h1>5. Service Models</h1>
145
+
146
+
147
+
148
+
149
+ </div>
150
+
151
+ </td></tr>
152
+ </table>
153
+ </body>
154
+ </html>
@@ -0,0 +1,154 @@
1
+ <html>
2
+ <head>
3
+ <title>Needle Manual :: Chapter 6: Logging</title>
4
+ <link type="text/css" rel="stylesheet" href="manual.css" />
5
+ </head>
6
+
7
+ <body>
8
+ <div id="banner">
9
+ <table border='0' cellpadding='0' cellspacing='0' width='100%'>
10
+ <tr><td valign='top' align='left'>
11
+ <div class="title">
12
+ <span class="product">Needle&mdash;</span><br />
13
+ <span class="tagline">to the point --></span>
14
+ </div>
15
+ </td><td valign='middle' align='right'>
16
+ <div class="info">
17
+ Needle Version: <strong>0.5.0</strong><br />
18
+ Manual Last Updated: <strong>2004-10-15 03:41 GMT</strong>
19
+ </div>
20
+ </td></tr>
21
+ </table>
22
+ </div>
23
+
24
+ <table border='0' width='100%' cellpadding='0' cellspacing='0'>
25
+ <tr><td valign='top'>
26
+
27
+ <div id="navigation">
28
+ <h1>Needle Manual</h1>
29
+
30
+ <h2>Chapters</h2>
31
+ <ol type="I">
32
+
33
+ <li>
34
+ <a href="chapter-1.html">
35
+ Introduction
36
+ </a>
37
+
38
+ <ol type="1">
39
+
40
+ <li><a href="chapter-1.html#s1">What is Needle?</a></li>
41
+
42
+ <li><a href="chapter-1.html#s2">How Can It Help Me?</a></li>
43
+
44
+ <li><a href="chapter-1.html#s3">License Information</a></li>
45
+
46
+ <li><a href="chapter-1.html#s4">Support</a></li>
47
+
48
+ </ol>
49
+ </li>
50
+
51
+ <li>
52
+ <a href="chapter-2.html">
53
+ Registry
54
+ </a>
55
+
56
+ <ol type="1">
57
+
58
+ <li><a href="chapter-2.html#s1">Overview</a></li>
59
+
60
+ <li><a href="chapter-2.html#s2">Creating</a></li>
61
+
62
+ <li><a href="chapter-2.html#s3">Services</a></li>
63
+
64
+ <li><a href="chapter-2.html#s4">Namespaces</a></li>
65
+
66
+ </ol>
67
+ </li>
68
+
69
+ <li>
70
+ <a href="chapter-3.html">
71
+ Dependency Injection
72
+ </a>
73
+
74
+ <ol type="1">
75
+
76
+ </ol>
77
+ </li>
78
+
79
+ <li>
80
+ <a href="chapter-4.html">
81
+ Interceptors
82
+ </a>
83
+
84
+ <ol type="1">
85
+
86
+ </ol>
87
+ </li>
88
+
89
+ <li>
90
+ <a href="chapter-5.html">
91
+ Service Models
92
+ </a>
93
+
94
+ <ol type="1">
95
+
96
+ </ol>
97
+ </li>
98
+
99
+ <li><strong>
100
+ <a href="chapter-6.html">
101
+ Logging
102
+ </a>
103
+ </strong> <big>&larr;</big>
104
+ <ol type="1">
105
+
106
+ </ol>
107
+ </li>
108
+
109
+ <li>
110
+ <a href="chapter-7.html">
111
+ Creating Libraries
112
+ </a>
113
+
114
+ <ol type="1">
115
+
116
+ </ol>
117
+ </li>
118
+
119
+ </ol>
120
+
121
+ <h2>API Reference</h2>
122
+
123
+ <ul>
124
+ <li><a href="http://needle.rubyforge.org/api/index.html">Needle API</a></li>
125
+ </ul>
126
+
127
+ <h2>Tutorials</h2>
128
+ <ol>
129
+
130
+ </ol>
131
+
132
+ <p align="center"><strong>More To Come...</strong></p>
133
+
134
+ <div class="license">
135
+ <a href="http://creativecommons.org/licenses/by-sa/2.0/"><img alt="Creative Commons License" border="0" src="http://creativecommons.org/images/public/somerights" /></a><br />
136
+ This manual is licensed under a <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons License</a>.
137
+ </div>
138
+ </div>
139
+
140
+ </td><td valign='top' width="100%">
141
+
142
+ <div id="content">
143
+
144
+ <h1>6. Logging</h1>
145
+
146
+
147
+
148
+
149
+ </div>
150
+
151
+ </td></tr>
152
+ </table>
153
+ </body>
154
+ </html>