module-cluster 2.0.1 → 2.0.2

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/README.md CHANGED
@@ -8,7 +8,7 @@ Provides an interface for event hooks at any point during module include/extend
8
8
 
9
9
  # Description #
10
10
 
11
- Provides hooks via :included, :extended, :append_features, :extend_object, :subclass. Define behavior at hooks via simple interface.
11
+ Provides hooks via :included, :extended, :append_features, :extend_object, :inherited. Define behavior at hooks via simple interface.
12
12
 
13
13
  # Install #
14
14
 
@@ -183,7 +183,7 @@ module ::Module::Cluster
183
183
  # @return [ModuleCluster::Cluster::InstanceController::HookController] Hook Controller instance.
184
184
  #
185
185
  def self.hook_cluster_events( instance, hooked_instance, event_context )
186
-
186
+
187
187
  requires_module_cluster_enable = false
188
188
 
189
189
  # Subclass hooks always cascade to the first subclass.
@@ -264,11 +264,11 @@ module ::Module::Cluster
264
264
 
265
265
  end
266
266
 
267
- if cascade_context
268
-
267
+ if cascade_context and ! cascade_context.empty?
268
+
269
269
  # already handled
270
270
 
271
- elsif match_context = this_frame.context
271
+ elsif match_context = this_frame.context and ! match_context.empty?
272
272
 
273
273
  # if we have a context we test against instance to see if we match, then we perform action
274
274
  case hooked_instance
@@ -32,7 +32,7 @@ class ::Module::Cluster::InstanceController::HookController::ChainProxy
32
32
  ###
33
33
  # Declare that modules should be included at event hook in the context specified this chained declaration.
34
34
  #
35
- # @overload include( module, .., & block )
35
+ # @overload include( module, ..., & block )
36
36
  #
37
37
  # @param module Module to include at event hook in the context specified this chained declaration.
38
38
  #
@@ -57,7 +57,7 @@ class ::Module::Cluster::InstanceController::HookController::ChainProxy
57
57
  ###
58
58
  # Declare that modules should be extended at event hook in the context specified this chained declaration.
59
59
  #
60
- # @overload extend( module, .., & block )
60
+ # @overload extend( module, ..., & block )
61
61
  #
62
62
  # @param module Module to extend at event hook in the context specified this chained declaration.
63
63
  #
@@ -89,7 +89,7 @@ class ::Module::Cluster::InstanceController::HookController::ChainProxy
89
89
  # Declare that modules should be included and extended at event hook in the context
90
90
  # specified this chained declaration. See also #extend_and_include.
91
91
  #
92
- # @overload include_and_extend( module, .., & block )
92
+ # @overload include_and_extend( module, ..., & block )
93
93
  #
94
94
  # @param module Module to include and extend at event hook in the context specified this chained declaration.
95
95
  #
@@ -121,7 +121,7 @@ class ::Module::Cluster::InstanceController::HookController::ChainProxy
121
121
  # Declare that modules should be extended and included at event hook in the context
122
122
  # specified this chained declaration. Order is reversed from #include_and_extend.
123
123
  #
124
- # @overload extend_and_include( module, .., & block )
124
+ # @overload extend_and_include( module, ..., & block )
125
125
  #
126
126
  # @param module Module to extend and include at event hook in the context specified this chained declaration.
127
127
  #
@@ -175,7 +175,7 @@ class ::Module::Cluster::InstanceController::HookController::ChainProxy
175
175
  ###
176
176
  # Declare contexts to which declarations made from this declaration chain should cascade.
177
177
  #
178
- # @overload cascade( context, .., & block )
178
+ # @overload cascade( context, ..., & block )
179
179
  #
180
180
  # @param context nil, :any, :class, :module, :subclass Contexts that should have event hooks cascaded into them.
181
181
  #
@@ -226,7 +226,7 @@ class ::Module::Cluster::InstanceController::HookController::ChainProxy
226
226
  # Declare that chained actions should be inserted into the event stack prior to the location
227
227
  # in the same event stack where provided module(s) are specified to be extended.
228
228
  #
229
- # @overload before_extend( module, .., & block )
229
+ # @overload before_extend( module, ..., & block )
230
230
  #
231
231
  # @param module Module that insert should be prior to.
232
232
  #
@@ -252,7 +252,7 @@ class ::Module::Cluster::InstanceController::HookController::ChainProxy
252
252
  # Declare that chained actions should be inserted into the event stack prior to the location
253
253
  # in the same event stack where provided module(s) are specified to be included.
254
254
  #
255
- # @overload before_include( module, .., & block )
255
+ # @overload before_include( module, ..., & block )
256
256
  #
257
257
  # @param module Module that insert should be prior to.
258
258
  #
@@ -279,7 +279,7 @@ class ::Module::Cluster::InstanceController::HookController::ChainProxy
279
279
  # Declare that chained actions should be inserted into the event stack prior to the location
280
280
  # in the same event stack where provided module(s) are specified to be included or extended.
281
281
  #
282
- # @overload before_include_or_extend( module, .., & block )
282
+ # @overload before_include_or_extend( module, ..., & block )
283
283
  #
284
284
  # @param module Module that insert should be prior to.
285
285
  #
@@ -307,7 +307,7 @@ class ::Module::Cluster::InstanceController::HookController::ChainProxy
307
307
  # Declare that chained actions should be inserted into the event stack after the location
308
308
  # in the same event stack where provided module(s) are specified to be included.
309
309
  #
310
- # @overload before_include( module, .., & block )
310
+ # @overload before_include( module, ..., & block )
311
311
  #
312
312
  # @param module Module that insert should be after.
313
313
  #
@@ -333,7 +333,7 @@ class ::Module::Cluster::InstanceController::HookController::ChainProxy
333
333
  # Declare that chained actions should be inserted into the event stack after the location
334
334
  # in the same event stack where provided module(s) are specified to be extended.
335
335
  #
336
- # @overload before_extend( module, .., & block )
336
+ # @overload before_extend( module, ..., & block )
337
337
  #
338
338
  # @param module Module that insert should be after.
339
339
  #
@@ -360,7 +360,7 @@ class ::Module::Cluster::InstanceController::HookController::ChainProxy
360
360
  # Declare that chained actions should be inserted into the event stack after the location
361
361
  # in the same event stack where provided module(s) are specified to be included or extended.
362
362
  #
363
- # @overload before_include_or_extend( module, .., & block )
363
+ # @overload before_include_or_extend( module, ..., & block )
364
364
  #
365
365
  # @param module Module that insert should be after.
366
366
  #
@@ -387,7 +387,7 @@ class ::Module::Cluster::InstanceController::HookController::ChainProxy
387
387
  ###
388
388
  # Set context for matching instance to determine whether to perform chained actions in stack.
389
389
  #
390
- # @overload context( context, .. )
390
+ # @overload context( context, ... )
391
391
  #
392
392
  # @param context nil, :any, :class, :module, :subclass Contexts that should have event hooks cascaded into them.
393
393
  #
@@ -670,7 +670,7 @@ module ::Module::Cluster::InstanceController::HookController::HookControllerInte
670
670
  new_frame = self.class::FrameStruct.new( @instance, cluster_name, contexts, cascade_to, block )
671
671
 
672
672
  @stack.insert( index, new_frame )
673
-
673
+
674
674
  unless index < 0
675
675
  index += 1
676
676
  end
@@ -12,7 +12,7 @@ module ::Module::Cluster::ModuleSupport
12
12
  # Ensures {::Module::Cluster Module::Cluster} before_include hooks occur at time of include.
13
13
  #
14
14
  def append_features( hooked_instance )
15
-
15
+
16
16
  ::Module::Cluster.hook_cluster_events( self, hooked_instance, :before_include )
17
17
 
18
18
  super if defined?( super )
@@ -27,6 +27,68 @@ describe ::Module::Cluster do
27
27
  # include hooks #
28
28
  ###################
29
29
 
30
+ # before - block only
31
+ it 'can create a before-include hook to run a block' do
32
+ module ::Module::Cluster::BeforeIncludeBlockHookMock
33
+
34
+ block_ran = false
35
+
36
+ ClusterModuleMock = ::Module.new
37
+ ClusterModuleMock.instance_eval do
38
+ extend ::Module::Cluster
39
+ cluster( :cluster_name ).before_include do |instance|
40
+ block_ran = true
41
+ end
42
+ end
43
+
44
+ module AnotherModule
45
+ include ClusterModuleMock
46
+ end
47
+
48
+ block_ran.should == true
49
+
50
+ block_ran = false
51
+
52
+ module OtherModule
53
+ include AnotherModule
54
+ end
55
+
56
+ block_ran.should == false
57
+
58
+ end
59
+ end
60
+
61
+ # after - block only
62
+ it 'can create an after-include hook to run a block' do
63
+ module ::Module::Cluster::BeforeIncludeBlockHookMock
64
+
65
+ block_ran = false
66
+
67
+ ClusterModuleMock = ::Module.new
68
+ ClusterModuleMock.instance_eval do
69
+ extend ::Module::Cluster
70
+ cluster( :cluster_name ).after_include do |instance|
71
+ block_ran = true
72
+ end
73
+ end
74
+
75
+ module AnotherModule
76
+ include ClusterModuleMock
77
+ end
78
+
79
+ block_ran.should == true
80
+
81
+ block_ran = false
82
+
83
+ module OtherModule
84
+ include AnotherModule
85
+ end
86
+
87
+ block_ran.should == false
88
+
89
+ end
90
+ end
91
+
30
92
  # before - without block
31
93
 
32
94
  it 'can create before-include hooks' do
@@ -179,6 +241,68 @@ describe ::Module::Cluster do
179
241
  # extend hooks #
180
242
  ##################
181
243
 
244
+ # before - block only
245
+ it 'can create a before-extend hook to run a block' do
246
+ module ::Module::Cluster::BeforeIncludeBlockHookMock
247
+
248
+ block_ran = false
249
+
250
+ ClusterModuleMock = ::Module.new
251
+ ClusterModuleMock.instance_eval do
252
+ extend ::Module::Cluster
253
+ cluster( :cluster_name ).before_extend do |instance|
254
+ block_ran = true
255
+ end
256
+ end
257
+
258
+ module AnotherModule
259
+ extend ClusterModuleMock
260
+ end
261
+
262
+ block_ran.should == true
263
+
264
+ block_ran = false
265
+
266
+ module OtherModule
267
+ extend AnotherModule
268
+ end
269
+
270
+ block_ran.should == false
271
+
272
+ end
273
+ end
274
+
275
+ # after - block only
276
+ it 'can create a after-extend hook to run a block' do
277
+ module ::Module::Cluster::BeforeIncludeBlockHookMock
278
+
279
+ block_ran = false
280
+
281
+ ClusterModuleMock = ::Module.new
282
+ ClusterModuleMock.instance_eval do
283
+ extend ::Module::Cluster
284
+ cluster( :cluster_name ).after_extend do |instance|
285
+ block_ran = true
286
+ end
287
+ end
288
+
289
+ module AnotherModule
290
+ extend ClusterModuleMock
291
+ end
292
+
293
+ block_ran.should == true
294
+
295
+ block_ran = false
296
+
297
+ module OtherModule
298
+ extend AnotherModule
299
+ end
300
+
301
+ block_ran.should == false
302
+
303
+ end
304
+ end
305
+
182
306
  # before - without block
183
307
 
184
308
  it 'can create before-extend hooks' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: module-cluster
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,10 +9,10 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-05 00:00:00.000000000 Z
12
+ date: 2012-07-06 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Provides hooks via :included, :extended, :append_features, :extend_object,
15
- :subclass. Define behavior at hooks via simple interface.
15
+ :inherited. Define behavior at hooks via simple interface.
16
16
  email: asher@ridiculouspower.com
17
17
  executables: []
18
18
  extensions: []