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 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
+ }