needle 1.0.0 → 1.1.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.
- data/doc/manual/manual.yml +6 -1
- data/doc/manual/parts/customizing_contexts.txt +24 -0
- data/doc/manual/parts/customizing_interceptors.txt +38 -0
- data/doc/manual/parts/customizing_namespaces.txt +24 -0
- data/doc/manual-html/chapter-1.html +18 -2
- data/doc/manual-html/chapter-2.html +18 -2
- data/doc/manual-html/chapter-3.html +18 -2
- data/doc/manual-html/chapter-4.html +18 -2
- data/doc/manual-html/chapter-5.html +18 -2
- data/doc/manual-html/chapter-6.html +18 -2
- data/doc/manual-html/chapter-7.html +18 -2
- data/doc/manual-html/chapter-8.html +18 -2
- data/doc/manual-html/chapter-9.html +344 -0
- data/doc/manual-html/index.html +19 -3
- data/lib/needle/container.rb +4 -82
- data/lib/needle/definition-context.rb +100 -0
- data/lib/needle/registry.rb +19 -8
- data/lib/needle/version.rb +1 -1
- data/test/tc_container.rb +127 -86
- data/test/tc_definition_context.rb +75 -0
- data/test/tc_registry.rb +23 -0
- metadata +8 -2
data/test/tc_container.rb
CHANGED
@@ -16,67 +16,73 @@
|
|
16
16
|
|
17
17
|
$:.unshift "../lib"
|
18
18
|
|
19
|
-
require 'needle/container'
|
20
|
-
require 'needle/registry'
|
21
19
|
require 'test/unit'
|
22
20
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
def setup
|
35
|
-
@container = MockContainer.new
|
36
|
-
@ctx = Needle::Container::DefinitionContext.new( @container )
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_register
|
40
|
-
assert_nothing_raised do
|
41
|
-
@ctx.hello { "world" }
|
42
|
-
end
|
43
|
-
assert_equal :register, @container.events[0][:name]
|
44
|
-
assert_equal [ :hello ], @container.events[0][:args]
|
45
|
-
assert_not_nil @container.events[0][:block]
|
46
|
-
end
|
21
|
+
require 'needle/container'
|
22
|
+
require 'needle/definition-context'
|
23
|
+
require 'needle/interceptor'
|
24
|
+
require 'needle/lifecycle/deferred'
|
25
|
+
require 'needle/lifecycle/initialize'
|
26
|
+
require 'needle/lifecycle/singleton'
|
27
|
+
require 'needle/lifecycle/threaded'
|
28
|
+
require 'needle/log-factory'
|
29
|
+
require 'needle/logging-interceptor'
|
30
|
+
require 'needle/pipeline/interceptor'
|
47
31
|
|
48
|
-
|
49
|
-
assert_raise( NoMethodError ) do
|
50
|
-
@ctx.hello( :arg )
|
51
|
-
end
|
52
|
-
end
|
32
|
+
class TC_Container < Test::Unit::TestCase
|
53
33
|
|
54
|
-
|
55
|
-
|
56
|
-
@ctx.hello
|
57
|
-
end
|
58
|
-
assert_equal :[], @container.events[0][:name]
|
59
|
-
assert_equal [ :hello ], @container.events[0][:args]
|
60
|
-
assert_nil @container.events[0][:block]
|
61
|
-
end
|
34
|
+
class CustomContainer < Needle::Container
|
35
|
+
end
|
62
36
|
|
63
|
-
|
64
|
-
|
65
|
-
@ctx.intercept( :foo )
|
66
|
-
end
|
67
|
-
assert_equal :intercept, @container.events[0][:name]
|
68
|
-
assert_equal [ :foo ], @container.events[0][:args]
|
69
|
-
assert_nil @container.events[0][:block]
|
70
|
-
end
|
37
|
+
class CustomBuilder < Needle::DefinitionContext
|
38
|
+
end
|
71
39
|
|
72
|
-
|
73
|
-
|
74
|
-
end
|
40
|
+
class CustomInterceptor < Needle::Interceptor
|
41
|
+
end
|
75
42
|
|
43
|
+
def new_container( *args )
|
44
|
+
container = Needle::Container.new( *args )
|
45
|
+
|
46
|
+
container.register( :pipeline_elements, :pipeline=>[] ) { Hash.new }
|
47
|
+
container.pipeline( :pipeline_elements ).add( :singleton,
|
48
|
+
Needle::Lifecycle::Singleton )
|
49
|
+
|
50
|
+
container[:pipeline_elements].update(
|
51
|
+
:singleton => Needle::Lifecycle::Singleton,
|
52
|
+
:initialize => Needle::Lifecycle::Initialize,
|
53
|
+
:deferred => Needle::Lifecycle::Deferred,
|
54
|
+
:interceptor => Needle::Pipeline::InterceptorElement,
|
55
|
+
:threaded => Needle::Lifecycle::Threaded
|
56
|
+
)
|
57
|
+
|
58
|
+
container.register( :service_models, :pipeline=>[:singleton] ) { Hash.new }
|
59
|
+
container[:service_models].update(
|
60
|
+
:prototype => [],
|
61
|
+
:prototype_initialize => [ :initialize ],
|
62
|
+
:prototype_deferred => [ :deferred ],
|
63
|
+
:prototype_deferred_initialize => [ :deferred, :initialize ],
|
64
|
+
:singleton => [ :singleton ],
|
65
|
+
:singleton_initialize => [ :singleton, :initialize ],
|
66
|
+
:singleton_deferred => [ :singleton, :deferred ],
|
67
|
+
:singleton_deferred_initialize => [ :singleton, :deferred, :initialize ],
|
68
|
+
:threaded => [ :threaded ],
|
69
|
+
:threaded_initialize => [ :threaded, :initialize ],
|
70
|
+
:threaded_deferred => [ :threaded, :deferred ],
|
71
|
+
:threaded_deferred_initialize => [ :threaded, :deferred, :initialize ]
|
72
|
+
)
|
73
|
+
|
74
|
+
container.register( :definition_context_factory ) { Needle::DefinitionContext }
|
75
|
+
container.register( :namespace_impl_factory ) { Needle::Container }
|
76
|
+
container.register( :interceptor_impl_factory ) { Needle::Interceptor }
|
77
|
+
|
78
|
+
container.register( :logs ) { LogFactory.new( opts[:logs] || {} ) }
|
79
|
+
container.register( :logging_interceptor ) { Needle::LoggingInterceptor }
|
80
|
+
|
81
|
+
container
|
76
82
|
end
|
77
83
|
|
78
84
|
def test_default
|
79
|
-
container =
|
85
|
+
container = new_container
|
80
86
|
assert_nil container.parent
|
81
87
|
assert_nil container.name
|
82
88
|
assert_equal container, container.root
|
@@ -84,7 +90,7 @@ class TC_Container < Test::Unit::TestCase
|
|
84
90
|
end
|
85
91
|
|
86
92
|
def test_named
|
87
|
-
container =
|
93
|
+
container = new_container( nil, "name" )
|
88
94
|
assert_nil container.parent
|
89
95
|
assert_equal "name", container.name
|
90
96
|
assert_equal container, container.root
|
@@ -92,36 +98,36 @@ class TC_Container < Test::Unit::TestCase
|
|
92
98
|
end
|
93
99
|
|
94
100
|
def test_nested
|
95
|
-
outer =
|
96
|
-
inner =
|
101
|
+
outer = new_container
|
102
|
+
inner = new_container( outer )
|
97
103
|
assert_same outer, inner.parent
|
98
104
|
assert_equal outer, inner.root
|
99
105
|
end
|
100
106
|
|
101
107
|
def test_root
|
102
|
-
outer =
|
103
|
-
middle =
|
104
|
-
inner =
|
108
|
+
outer = new_container
|
109
|
+
middle = new_container( outer )
|
110
|
+
inner = new_container( middle )
|
105
111
|
assert_same middle, inner.parent
|
106
112
|
assert_equal outer, inner.root
|
107
113
|
end
|
108
114
|
|
109
115
|
def test_nested_named
|
110
|
-
outer =
|
111
|
-
inner =
|
116
|
+
outer = new_container( nil, "outer" )
|
117
|
+
inner = new_container( outer, "inner" )
|
112
118
|
assert_equal "inner", inner.name
|
113
119
|
assert_equal "outer.inner", inner.fullname
|
114
120
|
end
|
115
121
|
|
116
122
|
def test_service_not_found
|
117
|
-
container =
|
123
|
+
container = new_container
|
118
124
|
assert_raise( Needle::ServiceNotFound ) do
|
119
125
|
container[:test]
|
120
126
|
end
|
121
127
|
end
|
122
128
|
|
123
129
|
def test_register
|
124
|
-
container =
|
130
|
+
container = new_container
|
125
131
|
container.register( :test, :pipeline=>[] ) { Hash.new }
|
126
132
|
|
127
133
|
assert_nothing_raised { container[:test] }
|
@@ -134,7 +140,7 @@ class TC_Container < Test::Unit::TestCase
|
|
134
140
|
end
|
135
141
|
|
136
142
|
def test_builder
|
137
|
-
container =
|
143
|
+
container = new_container
|
138
144
|
b1 = container.builder
|
139
145
|
b2 = container.builder
|
140
146
|
|
@@ -142,7 +148,7 @@ class TC_Container < Test::Unit::TestCase
|
|
142
148
|
end
|
143
149
|
|
144
150
|
def test_define_block
|
145
|
-
container =
|
151
|
+
container = new_container
|
146
152
|
|
147
153
|
container.define do |b|
|
148
154
|
b.test( :pipeline=>[] ) { Hash.new }
|
@@ -158,14 +164,14 @@ class TC_Container < Test::Unit::TestCase
|
|
158
164
|
end
|
159
165
|
|
160
166
|
def test_define_noblock
|
161
|
-
container =
|
167
|
+
container = new_container
|
162
168
|
container.define.test( :pipeline=>[] ) { Hash.new }
|
163
169
|
assert container.has_key?( :test )
|
164
170
|
assert_instance_of Hash, container.test
|
165
171
|
end
|
166
172
|
|
167
173
|
def test_define!
|
168
|
-
container =
|
174
|
+
container = new_container
|
169
175
|
|
170
176
|
container.define! do
|
171
177
|
test( :pipeline=>[] ) { Hash.new }
|
@@ -181,7 +187,7 @@ class TC_Container < Test::Unit::TestCase
|
|
181
187
|
end
|
182
188
|
|
183
189
|
def test_namespace
|
184
|
-
container =
|
190
|
+
container = new_container
|
185
191
|
container.namespace( :test, :pipeline=>[] )
|
186
192
|
assert_instance_of Needle::Container, container.test
|
187
193
|
|
@@ -193,7 +199,7 @@ class TC_Container < Test::Unit::TestCase
|
|
193
199
|
end
|
194
200
|
|
195
201
|
def test_namespace_define
|
196
|
-
container =
|
202
|
+
container = new_container
|
197
203
|
container.namespace_define( :test, :pipeline=>[] ) do |b|
|
198
204
|
b.item( :pipeline=>[] ) { Hash.new }
|
199
205
|
end
|
@@ -202,7 +208,7 @@ class TC_Container < Test::Unit::TestCase
|
|
202
208
|
end
|
203
209
|
|
204
210
|
def test_namespace_define!
|
205
|
-
container =
|
211
|
+
container = new_container
|
206
212
|
container.namespace_define!( :test, :pipeline=>[] ) do
|
207
213
|
item( :pipeline=>[] ) { Hash.new }
|
208
214
|
end
|
@@ -211,7 +217,7 @@ class TC_Container < Test::Unit::TestCase
|
|
211
217
|
end
|
212
218
|
|
213
219
|
def test_namespace!
|
214
|
-
container =
|
220
|
+
container = new_container
|
215
221
|
container.namespace!( :test, :pipeline=>[] ) do
|
216
222
|
item( :pipeline=>[] ) { Hash.new }
|
217
223
|
end
|
@@ -220,7 +226,7 @@ class TC_Container < Test::Unit::TestCase
|
|
220
226
|
end
|
221
227
|
|
222
228
|
def test_has_key
|
223
|
-
container =
|
229
|
+
container = new_container
|
224
230
|
|
225
231
|
assert !container.has_key?(:test)
|
226
232
|
container.register( :test, :pipeline=>[] ) { Hash.new }
|
@@ -228,7 +234,7 @@ class TC_Container < Test::Unit::TestCase
|
|
228
234
|
end
|
229
235
|
|
230
236
|
def test_knows_key
|
231
|
-
container =
|
237
|
+
container = new_container
|
232
238
|
|
233
239
|
assert !container.knows_key?(:test)
|
234
240
|
container.register( :test, :pipeline=>[] ) { Hash.new }
|
@@ -236,8 +242,8 @@ class TC_Container < Test::Unit::TestCase
|
|
236
242
|
end
|
237
243
|
|
238
244
|
def test_parent_knows_key
|
239
|
-
outer =
|
240
|
-
inner =
|
245
|
+
outer = new_container
|
246
|
+
inner = new_container( outer )
|
241
247
|
|
242
248
|
outer.register( :test, :pipeline=>[] ) { Hash.new }
|
243
249
|
assert !inner.has_key?(:test)
|
@@ -245,8 +251,8 @@ class TC_Container < Test::Unit::TestCase
|
|
245
251
|
end
|
246
252
|
|
247
253
|
def test_service_in_parent
|
248
|
-
outer =
|
249
|
-
inner =
|
254
|
+
outer = new_container
|
255
|
+
inner = new_container( outer )
|
250
256
|
|
251
257
|
outer.register( :test, :pipeline=>[] ) { Hash.new }
|
252
258
|
assert_nothing_raised do
|
@@ -255,8 +261,8 @@ class TC_Container < Test::Unit::TestCase
|
|
255
261
|
end
|
256
262
|
|
257
263
|
def test_service_not_in_parent
|
258
|
-
outer =
|
259
|
-
inner =
|
264
|
+
outer = new_container
|
265
|
+
inner = new_container( outer )
|
260
266
|
|
261
267
|
assert_raise( Needle::ServiceNotFound ) do
|
262
268
|
inner[:test]
|
@@ -264,14 +270,14 @@ class TC_Container < Test::Unit::TestCase
|
|
264
270
|
end
|
265
271
|
|
266
272
|
def test_intercept_not_found
|
267
|
-
container =
|
273
|
+
container = new_container
|
268
274
|
assert_raise( Needle::ServiceNotFound ) do
|
269
275
|
container.intercept( :test )
|
270
276
|
end
|
271
277
|
end
|
272
278
|
|
273
279
|
def test_intercept
|
274
|
-
container =
|
280
|
+
container = new_container
|
275
281
|
container.register( :test ) { Hash.new }
|
276
282
|
|
277
283
|
filtered = false
|
@@ -284,25 +290,25 @@ class TC_Container < Test::Unit::TestCase
|
|
284
290
|
end
|
285
291
|
|
286
292
|
def test_find_definition_missing
|
287
|
-
container =
|
293
|
+
container = new_container
|
288
294
|
assert_nil container.find_definition( :bogus )
|
289
295
|
end
|
290
296
|
|
291
297
|
def test_find_definition_found_local
|
292
|
-
container =
|
298
|
+
container = new_container
|
293
299
|
container.register( :test, :pipeline=>[] ) { Object.new }
|
294
300
|
assert_not_nil container.find_definition( :test )
|
295
301
|
end
|
296
302
|
|
297
303
|
def test_find_definition_found_ancestor
|
298
|
-
outer =
|
299
|
-
inner =
|
304
|
+
outer = new_container
|
305
|
+
inner = new_container( outer )
|
300
306
|
outer.register( :test, :pipeline=>[] ) { Object.new }
|
301
307
|
assert_not_nil inner.find_definition( :test )
|
302
308
|
end
|
303
309
|
|
304
310
|
def test_pipeline
|
305
|
-
container =
|
311
|
+
container = new_container
|
306
312
|
container.register( :test, :pipeline=>[] ) { Object.new }
|
307
313
|
assert_instance_of Needle::Pipeline::Collection, container.pipeline( :test )
|
308
314
|
|
@@ -312,7 +318,7 @@ class TC_Container < Test::Unit::TestCase
|
|
312
318
|
end
|
313
319
|
|
314
320
|
def test_require_default
|
315
|
-
container =
|
321
|
+
container = new_container
|
316
322
|
container.register( :service_models, :pipeline=>[] ) { Hash[ :singleton => [] ] }
|
317
323
|
container.require( "services", "A::B::C" )
|
318
324
|
|
@@ -321,7 +327,7 @@ class TC_Container < Test::Unit::TestCase
|
|
321
327
|
end
|
322
328
|
|
323
329
|
def test_require_custom
|
324
|
-
container =
|
330
|
+
container = new_container
|
325
331
|
container.register( :service_models , :pipeline=>[] ) { Hash[ :singleton => [] ] }
|
326
332
|
container.require( "services", "A::B::C", :register_other_services )
|
327
333
|
|
@@ -329,4 +335,39 @@ class TC_Container < Test::Unit::TestCase
|
|
329
335
|
assert_not_nil container[:blah][:baz]
|
330
336
|
end
|
331
337
|
|
338
|
+
def test_custom_namespace_impl
|
339
|
+
container = new_container
|
340
|
+
container.namespace :subspace
|
341
|
+
|
342
|
+
subspace = container.subspace
|
343
|
+
subspace.register( :namespace_impl_factory ) { CustomContainer }
|
344
|
+
subspace.namespace :custom_namespace
|
345
|
+
ns = subspace.custom_namespace
|
346
|
+
|
347
|
+
assert_instance_of Needle::Container, subspace
|
348
|
+
assert_instance_of CustomContainer, ns
|
349
|
+
end
|
350
|
+
|
351
|
+
def test_custom_builder_impl
|
352
|
+
container = new_container
|
353
|
+
container.namespace :subspace
|
354
|
+
|
355
|
+
subspace = container.subspace
|
356
|
+
subspace.register( :definition_context_factory ) { CustomBuilder }
|
357
|
+
|
358
|
+
assert_equal Needle::DefinitionContext, container.builder.class
|
359
|
+
assert_equal CustomBuilder, subspace.builder.class
|
360
|
+
end
|
361
|
+
|
362
|
+
def test_custom_interceptor_impl
|
363
|
+
container = new_container
|
364
|
+
container.namespace :subspace
|
365
|
+
|
366
|
+
subspace = container.subspace
|
367
|
+
subspace.register( :interceptor_impl_factory ) { CustomInterceptor }
|
368
|
+
|
369
|
+
assert_equal Needle::Interceptor, container.intercept( :logs ).class
|
370
|
+
assert_equal CustomInterceptor, subspace.intercept( :logs ).class
|
371
|
+
end
|
372
|
+
|
332
373
|
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
#--
|
2
|
+
# =============================================================================
|
3
|
+
# Copyright (c) 2004, Jamis Buck (jgb3@email.byu.edu)
|
4
|
+
# All rights reserved.
|
5
|
+
#
|
6
|
+
# This source file is distributed as part of the Needle dependency injection
|
7
|
+
# library for Ruby. This file (and the library as a whole) may be used only as
|
8
|
+
# allowed by either the BSD license, or the Ruby license (or, by association
|
9
|
+
# with the Ruby license, the GPL). See the "doc" subdirectory of the Needle
|
10
|
+
# distribution for the texts of these licenses.
|
11
|
+
# -----------------------------------------------------------------------------
|
12
|
+
# needle website : http://needle.rubyforge.org
|
13
|
+
# project website: http://rubyforge.org/projects/needle
|
14
|
+
# =============================================================================
|
15
|
+
#++
|
16
|
+
|
17
|
+
$:.unshift "../lib"
|
18
|
+
|
19
|
+
require 'needle/definition-context'
|
20
|
+
require 'needle/registry'
|
21
|
+
require 'test/unit'
|
22
|
+
|
23
|
+
class TC_DefinitionContext < Test::Unit::TestCase
|
24
|
+
|
25
|
+
class MockContainer
|
26
|
+
attr_reader :events
|
27
|
+
def initialize; @events = []; end
|
28
|
+
def method_missing(s,*a,&b)
|
29
|
+
@events << { :name => s, :args => a, :block => b }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def setup
|
34
|
+
@container = MockContainer.new
|
35
|
+
@ctx = Needle::DefinitionContext.new( @container )
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_register
|
39
|
+
assert_nothing_raised do
|
40
|
+
@ctx.hello { "world" }
|
41
|
+
end
|
42
|
+
assert_equal :register, @container.events[0][:name]
|
43
|
+
assert_equal [ :hello ], @container.events[0][:args]
|
44
|
+
assert_not_nil @container.events[0][:block]
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_reference_bad
|
48
|
+
assert_raise( NoMethodError ) do
|
49
|
+
@ctx.hello( :arg )
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_register_good
|
54
|
+
assert_nothing_raised do
|
55
|
+
@ctx.hello
|
56
|
+
end
|
57
|
+
assert_equal :[], @container.events[0][:name]
|
58
|
+
assert_equal [ :hello ], @container.events[0][:args]
|
59
|
+
assert_nil @container.events[0][:block]
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_intercept
|
63
|
+
assert_nothing_raised do
|
64
|
+
@ctx.intercept( :foo )
|
65
|
+
end
|
66
|
+
assert_equal :intercept, @container.events[0][:name]
|
67
|
+
assert_equal [ :foo ], @container.events[0][:args]
|
68
|
+
assert_nil @container.events[0][:block]
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_this_container
|
72
|
+
assert_equal @container, @ctx.this_container
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
data/test/tc_registry.rb
CHANGED
@@ -86,4 +86,27 @@ class TC_Registry < Test::Unit::TestCase
|
|
86
86
|
assert_nil @registry.fullname
|
87
87
|
end
|
88
88
|
|
89
|
+
def test_nested_parent
|
90
|
+
inner = Needle::Registry.new( :parent => @registry )
|
91
|
+
assert_equal @registry, inner.parent
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_explicit_name
|
95
|
+
reg = Needle::Registry.new( :name => :test )
|
96
|
+
assert_equal :test, reg.name
|
97
|
+
assert_nil reg.fullname
|
98
|
+
end
|
99
|
+
|
100
|
+
def test_nested_fullname
|
101
|
+
middle = Needle::Registry.new( :parent => @registry, :name => :middle )
|
102
|
+
inner = Needle::Registry.new( :parent => middle, :name => :test )
|
103
|
+
assert_equal "middle.test", inner.fullname
|
104
|
+
end
|
105
|
+
|
106
|
+
def test_bootstrap_once
|
107
|
+
inner = Needle::Registry.new( :parent => @registry )
|
108
|
+
assert inner.knows_key?( :pipeline_elements )
|
109
|
+
assert !inner.has_key?( :pipeline_elements )
|
110
|
+
end
|
111
|
+
|
89
112
|
end
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.1
|
|
3
3
|
specification_version: 1
|
4
4
|
name: needle
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.
|
7
|
-
date: 2004-11-
|
6
|
+
version: 1.1.0
|
7
|
+
date: 2004-11-11
|
8
8
|
summary: Needle is a Dependency Injection/Inversion of Control container for Ruby. It supports both type-2 (setter) and type-3 (constructor) injection. It takes advantage of the dynamic nature of Ruby to provide a rich and flexible approach to injecting dependencies.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -50,6 +50,7 @@ files:
|
|
50
50
|
- doc/manual-html/chapter-6.html
|
51
51
|
- doc/manual-html/chapter-7.html
|
52
52
|
- doc/manual-html/chapter-8.html
|
53
|
+
- doc/manual-html/chapter-9.html
|
53
54
|
- doc/manual-html/index.html
|
54
55
|
- doc/images/di_classdiagram.jpg
|
55
56
|
- doc/manual/manual.css
|
@@ -69,6 +70,7 @@ files:
|
|
69
70
|
- doc/manual/parts/02_services.txt
|
70
71
|
- doc/manual/parts/04_setup.txt
|
71
72
|
- doc/manual/parts/01_alternatives.txt
|
73
|
+
- doc/manual/parts/customizing_contexts.txt
|
72
74
|
- doc/manual/parts/04_overview.txt
|
73
75
|
- doc/manual/parts/models_models.txt
|
74
76
|
- doc/manual/parts/logging_overview.txt
|
@@ -81,8 +83,10 @@ files:
|
|
81
83
|
- doc/manual/parts/01_license.txt
|
82
84
|
- doc/manual/parts/01_use_cases.txt
|
83
85
|
- doc/manual/parts/libraries_creating.txt
|
86
|
+
- doc/manual/parts/customizing_interceptors.txt
|
84
87
|
- doc/manual/parts/02_overview.txt
|
85
88
|
- doc/manual/parts/03_conventional.txt
|
89
|
+
- doc/manual/parts/customizing_namespaces.txt
|
86
90
|
- doc/manual/parts/logging_configuration.txt
|
87
91
|
- doc/manual/parts/interceptors_custom.txt
|
88
92
|
- doc/manual/parts/libraries_overview.txt
|
@@ -104,6 +108,7 @@ files:
|
|
104
108
|
- lib/needle/version.rb
|
105
109
|
- lib/needle/log-factory.rb
|
106
110
|
- lib/needle/errors.rb
|
111
|
+
- lib/needle/definition-context.rb
|
107
112
|
- lib/needle/pipeline/interceptor.rb
|
108
113
|
- lib/needle/pipeline/collection.rb
|
109
114
|
- lib/needle/pipeline/element.rb
|
@@ -115,6 +120,7 @@ files:
|
|
115
120
|
- test/tc_service_point.rb
|
116
121
|
- test/tc_registry.rb
|
117
122
|
- test/pipeline
|
123
|
+
- test/tc_definition_context.rb
|
118
124
|
- test/tc_interceptor.rb
|
119
125
|
- test/ALL-TESTS.rb
|
120
126
|
- test/lifecycle
|