needle 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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 7: Creating Libraries</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>
100
+ <a href="chapter-6.html">
101
+ Logging
102
+ </a>
103
+
104
+ <ol type="1">
105
+
106
+ </ol>
107
+ </li>
108
+
109
+ <li><strong>
110
+ <a href="chapter-7.html">
111
+ Creating Libraries
112
+ </a>
113
+ </strong> <big>&larr;</big>
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>7. Creating Libraries</h1>
145
+
146
+
147
+
148
+
149
+ </div>
150
+
151
+ </td></tr>
152
+ </table>
153
+ </body>
154
+ </html>
@@ -0,0 +1,177 @@
1
+ <html>
2
+ <head>
3
+ <title>Needle Manual</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>
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
+ <p class="product-manual">Product Manual</p>
145
+
146
+ <p align="center">
147
+ <img src=""
148
+ alt="Needle: to the point -->" />
149
+ </p>
150
+
151
+ <p align="center">
152
+
153
+ Project Page: <a href="http://rubyforge.org/projects/needle">http://rubyforge.org/projects/needle</a><br />
154
+
155
+ User Manual: <a href="http://needle.rubyforge.org">http://needle.rubyforge.org</a><br />
156
+
157
+ API Documentation: <a href="http://needle.rubyforge.org/api">http://needle.rubyforge.org/api</a><br />
158
+
159
+ Needle Wiki: <a href="http://needle.rubyforge.org/wiki/wiki.pl">http://needle.rubyforge.org/wiki/wiki.pl</a><br />
160
+
161
+ </p>
162
+
163
+
164
+
165
+ <p class="copyright">
166
+ Copyright &copy; 2004
167
+ Jamis Buck
168
+ (<a href="mailto:jgb3@email.byu.edu">jgb3@email.byu.edu</a>)
169
+ </p>
170
+
171
+
172
+ </div>
173
+
174
+ </td></tr>
175
+ </table>
176
+ </body>
177
+ </html>
@@ -0,0 +1,192 @@
1
+ body {
2
+ background: #FFF;
3
+ font-family: sans-serif;
4
+ color: #000;
5
+ margin: 0px;
6
+ }
7
+
8
+ a {
9
+ color: #00F;
10
+ text-decoration: none;
11
+ }
12
+
13
+ a:hover {
14
+ text-decoration: underline;
15
+ }
16
+
17
+ .product-manual {
18
+ text-align: center;
19
+ font-size: x-large;
20
+ font-variant: small-caps;
21
+ font-weight: bold;
22
+ color: #005;
23
+ }
24
+
25
+ .copyright {
26
+ text-align: center;
27
+ font-size: small;
28
+ font-style: italic;
29
+ color: #005;
30
+ margin-top: 1in;
31
+ }
32
+
33
+ #banner {
34
+ background: #005;
35
+ color: #FFF;
36
+ border-bottom: 1px solid #000;
37
+ padding-top: 0.5em;
38
+ padding-bottom: 0.5em;
39
+ padding-left: 1em;
40
+ margin-bottom: 1em;
41
+ }
42
+
43
+ #banner .title {
44
+ font-size: x-large;
45
+ }
46
+
47
+ #banner .title:first-letter {
48
+ font-size: 250%;
49
+ font-weight: normal;
50
+ float: left;
51
+ margin-top: -7px;
52
+ margin-bottom: -7px;
53
+ }
54
+
55
+ #banner .product {
56
+ font-weight: bold;
57
+ color: #FF7;
58
+ letter-spacing: 0.5em;
59
+ }
60
+
61
+ #banner .tagline {
62
+ font-style: italic;
63
+ font-size: large;
64
+ letter-spacing: 0.1em;
65
+ color: #FFF;
66
+ }
67
+
68
+ #banner .info {
69
+ color: white;
70
+ font-size: small;
71
+ padding-right: 1em;
72
+ }
73
+
74
+ #content {
75
+ margin-left: 0cm;
76
+ margin-right: 1cm;
77
+ }
78
+
79
+ #navigation {
80
+ font-size: x-small;
81
+ border-right: 2px groove black;
82
+ border-top: 2px groove black;
83
+ margin-right: 1em;
84
+ width: 200px;
85
+ height: 100%;
86
+ background: #FFD;
87
+ }
88
+
89
+ #navigation ul, #navigation ol {
90
+ margin-left: 1.5em;
91
+ padding-left: 1.5em;
92
+ }
93
+
94
+ #navigation .license {
95
+ font-size: x-small;
96
+ text-align: center;
97
+ border-top: 1px dashed #005;
98
+ margin-top: 2em;
99
+ padding: 1em;
100
+ }
101
+
102
+ .section {
103
+ margin-bottom: 1em;
104
+ }
105
+
106
+ .section p {
107
+ text-align: justify;
108
+ }
109
+
110
+ #content pre {
111
+ background: #FFE;
112
+ border: 1px dotted #AAA;
113
+ padding: 1em;
114
+ }
115
+
116
+ #content h1 {
117
+ background: #005;
118
+ color: #FFF;
119
+ font-size: x-large;
120
+ font-weight: bold;
121
+ font-variant: small-caps;
122
+ padding: 0.5em;
123
+ border: 1px solid #000;
124
+ margin-top: 0px;
125
+ margin-bottom: 1em;
126
+ }
127
+
128
+ #content h2 {
129
+ background: #005;
130
+ color: #FFF;
131
+ font-size: large;
132
+ font-weight: bold;
133
+ font-variant: small-caps;
134
+ padding: 0.25em;
135
+ padding-left: 0.5em;
136
+ border: 1px solid #000;
137
+ margin-bottom: 1em;
138
+ }
139
+
140
+ #content h3 {
141
+ background: #FFD;
142
+ color: #000;
143
+ font-size: normal;
144
+ font-weight: bold;
145
+ font-variant: small-caps;
146
+ padding: 0.25em;
147
+ padding-left: 0.5em;
148
+ border: 1px dotted #000;
149
+ margin-bottom: 1em;
150
+ }
151
+
152
+ #content h4 {
153
+ background: #FFE;
154
+ color: #000;
155
+ font-size: normal;
156
+ font-weight: bold;
157
+ font-variant: small-caps;
158
+ padding: 0.25em;
159
+ padding-left: 0.5em;
160
+ border: 1px dotted #777;
161
+ margin-bottom: 1em;
162
+ }
163
+
164
+ #navigation h1 {
165
+ margin: 0px;
166
+ padding: 1em;
167
+ color: #005;
168
+ background: transparent;
169
+ font-weight: bold;
170
+ font-size: 150%;
171
+ font-variant: small-caps;
172
+ text-align: center;
173
+ }
174
+
175
+ #navigation h2 {
176
+ margin: 0px;
177
+ margin-bottom: 1em;
178
+ padding: 0.5em;
179
+ border-top: 1px dashed #005;
180
+ border-bottom: 1px dashed #005;
181
+ color: #005;
182
+ background: transparent;
183
+ font-weight: bold;
184
+ font-size: 125%;
185
+ font-variant: small-caps;
186
+ text-align: center;
187
+ }
188
+
189
+ table.list td {
190
+ border-bottom: 1px dotted #005;
191
+ padding-bottom: 5px;
192
+ }