module-cluster 1.4.0 → 1.4.1

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 (50) hide show
  1. data/README.md +66 -29
  2. data/README.rdoc +66 -29
  3. data/lib/module-cluster.rb +18 -0
  4. data/lib/module-cluster/ModuleCluster.rb +2 -7
  5. data/lib/module-cluster/ModuleCluster/Define/Block.rb +4 -4
  6. data/lib/module-cluster/ModuleCluster/Define/Block/Class.rb +11 -8
  7. data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrInstance.rb +19 -12
  8. data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModule.rb +19 -12
  9. data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModuleOrInstance.rb +19 -12
  10. data/lib/module-cluster/ModuleCluster/Define/Block/Instance.rb +3 -2
  11. data/lib/module-cluster/ModuleCluster/Define/Block/Module.rb +11 -8
  12. data/lib/module-cluster/ModuleCluster/Define/Block/ModuleOrInstance.rb +19 -12
  13. data/lib/module-cluster/ModuleCluster/Define/ClassCluster.rb +39 -46
  14. data/lib/module-cluster/ModuleCluster/Define/ClassOrInstanceCluster.rb +34 -33
  15. data/lib/module-cluster/ModuleCluster/Define/Cluster.rb +31 -42
  16. data/lib/module-cluster/ModuleCluster/Define/ClusterCascades.rb +53 -62
  17. data/lib/module-cluster/ModuleCluster/Define/ClusterCascadesToClass.rb +49 -60
  18. data/lib/module-cluster/ModuleCluster/Define/ClusterCascadesToModule.rb +49 -60
  19. data/lib/module-cluster/ModuleCluster/Define/InstanceCluster.rb +3 -4
  20. data/lib/module-cluster/ModuleCluster/Define/ModuleCluster.rb +39 -46
  21. data/lib/module-cluster/ModuleCluster/Define/ModuleOrClassCluster.rb +55 -54
  22. data/lib/module-cluster/ModuleCluster/Define/ModuleOrInstanceCluster.rb +34 -33
  23. data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures.rb +4 -4
  24. data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/ClusterStack.rb +1 -1
  25. data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/PerformCascades.rb +64 -46
  26. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack.rb +7 -5
  27. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block.rb +3 -3
  28. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Class.rb +2 -2
  29. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Instance.rb +1 -1
  30. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Module.rb +2 -2
  31. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Set.rb +4 -1
  32. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Extends.rb +45 -13
  33. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Includes.rb +36 -10
  34. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/PrependsExtends.rb +47 -15
  35. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/PrependsIncludes.rb +38 -12
  36. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Set.rb +29 -1
  37. data/lib/module-cluster/_private_/ModuleCluster/ExtendForCascade.rb +8 -3
  38. data/spec/ModuleCluster/Define/ClassCluster_spec.rb +18 -18
  39. data/spec/ModuleCluster/Define/ClassOrInstanceCluster_spec.rb +10 -10
  40. data/spec/ModuleCluster/Define/ClusterCascadesToClass_spec.rb +18 -18
  41. data/spec/ModuleCluster/Define/ClusterCascadesToModule_spec.rb +18 -18
  42. data/spec/ModuleCluster/Define/ClusterCascades_spec.rb +18 -18
  43. data/spec/ModuleCluster/Define/Cluster_spec.rb +18 -18
  44. data/spec/ModuleCluster/Define/InstanceCluster_spec.rb +2 -2
  45. data/spec/ModuleCluster/Define/ModuleCluster_spec.rb +18 -18
  46. data/spec/ModuleCluster/Define/ModuleOrClassCluster_spec.rb +18 -18
  47. data/spec/ModuleCluster/Define/ModuleOrInstanceCluster_spec.rb +10 -10
  48. data/spec/ModuleCluster_spec.rb +5 -5
  49. data/spec/_private_/ModuleCluster/CascadeFeatures/PerformCascades_spec.rb +110 -2
  50. metadata +2 -2
data/README.md CHANGED
@@ -51,7 +51,7 @@ Blocks can be used to return dynamically-determined modules at runtime.
51
51
  ```ruby
52
52
  module SomeModule
53
53
  extend ModuleCluster
54
- include_or_extend_cascades_prepending_extends do
54
+ include_or_extend_cascades_prepend_extends do
55
55
  method_that_returns_one_or_more_modules
56
56
  end
57
57
  end
@@ -61,7 +61,7 @@ Block methods can be used for nesting declarations, for instance to apply cascad
61
61
 
62
62
  ```ruby
63
63
  prepend_module_include do |class_or_module|
64
- class_or_module.include_or_extend_cascades_prepending_extends do
64
+ class_or_module.include_or_extend_cascades_prepend_extends do
65
65
  method_that_returns_one_or_more_modules
66
66
  end
67
67
  end
@@ -207,18 +207,18 @@ Cascade methods (cascades to modules and classes):
207
207
  * extend_cascades_includes
208
208
  * extend_cascades_extends
209
209
  * extend_cascades_includes_and_extends
210
- * include_cascades_prepending_includes
211
- * include_cascades_prepending_extends
212
- * include_cascades_prepending_includes_and_extends
213
- * extend_cascades_prepending_includes
214
- * extend_cascades_prepending_extends
215
- * extend_cascades_prepending_includes_and_extends
210
+ * include_cascades_prepend_includes
211
+ * include_cascades_prepend_extends
212
+ * include_cascades_prepend_includes_and_extends
213
+ * extend_cascades_prepend_includes
214
+ * extend_cascades_prepend_extends
215
+ * extend_cascades_prepend_includes_and_extends
216
216
  * include_or_extend_cascades_includes
217
217
  * include_or_extend_cascades_extends
218
218
  * include_or_extend_cascades_includes_and_extends
219
- * include_or_extend_cascades_prepending_includes
220
- * include_or_extend_cascades_prepending_extends
221
- * include_or_extend_cascades_prepending_includes_and_extends
219
+ * include_or_extend_cascades_prepend_includes
220
+ * include_or_extend_cascades_prepend_extends
221
+ * include_or_extend_cascades_prepend_includes_and_extends
222
222
 
223
223
  Cascade to class methods (does not cascade to modules):
224
224
 
@@ -228,18 +228,18 @@ Cascade to class methods (does not cascade to modules):
228
228
  * extend_cascades_includes_to_class
229
229
  * extend_cascades_extends_to_class
230
230
  * extend_cascades_includes_and_extends_to_class
231
- * include_cascades_to_class_prepending_includes
232
- * include_cascades_to_class_prepending_extends
233
- * include_cascades_to_class_prepending_includes_and_extends
234
- * extend_cascades_to_class_prepending_includes
235
- * extend_cascades_to_class_prepending_extends
236
- * extend_cascades_to_class_prepending_includes_and_extends
231
+ * include_cascades_to_class_prepend_includes
232
+ * include_cascades_to_class_prepend_extends
233
+ * include_cascades_to_class_prepend_includes_and_extends
234
+ * extend_cascades_to_class_prepend_includes
235
+ * extend_cascades_to_class_prepend_extends
236
+ * extend_cascades_to_class_prepend_includes_and_extends
237
237
  * include_or_extend_cascades_includes_to_class
238
238
  * include_or_extend_cascades_extends_to_class
239
239
  * include_or_extend_cascades_includes_and_extends_to_class
240
- * include_or_extend_cascades_to_class_prepending_includes
241
- * include_or_extend_cascades_to_class_prepending_extends
242
- * include_or_extend_cascades_to_class_prepending_includes_and_extends
240
+ * include_or_extend_cascades_to_class_prepend_includes
241
+ * include_or_extend_cascades_to_class_prepend_extends
242
+ * include_or_extend_cascades_to_class_prepend_includes_and_extends
243
243
 
244
244
  Cascade to module methods (does not cascade to classes):
245
245
 
@@ -249,18 +249,18 @@ Cascade to module methods (does not cascade to classes):
249
249
  * extend_cascades_includes_to_module
250
250
  * extend_cascades_extends_to_module
251
251
  * extend_cascades_includes_and_extends_to_module
252
- * include_cascades_to_module_prepending_includes
253
- * include_cascades_to_module_prepending_extends
254
- * include_cascades_to_module_prepending_includes_and_extends
255
- * extend_cascades_to_module_prepending_includes
256
- * extend_cascades_to_module_prepending_extends
257
- * extend_cascades_to_module_prepending_includes_and_extends
252
+ * include_cascades_to_module_prepend_includes
253
+ * include_cascades_to_module_prepend_extends
254
+ * include_cascades_to_module_prepend_includes_and_extends
255
+ * extend_cascades_to_module_prepend_includes
256
+ * extend_cascades_to_module_prepend_extends
257
+ * extend_cascades_to_module_prepend_includes_and_extends
258
258
  * include_or_extend_cascades_includes_to_module
259
259
  * include_or_extend_cascades_extends_to_module
260
260
  * include_or_extend_cascades_includes_and_extends_to_module
261
- * include_or_extend_cascades_to_module_prepending_includes
262
- * include_or_extend_cascades_to_module_prepending_extends
263
- * include_or_extend_cascades_to_module_prepending_includes_and_extends
261
+ * include_or_extend_cascades_to_module_prepend_includes
262
+ * include_or_extend_cascades_to_module_prepend_extends
263
+ * include_or_extend_cascades_to_module_prepend_includes_and_extends
264
264
 
265
265
  Module block methods:
266
266
 
@@ -321,6 +321,43 @@ Class or module or instance block methods:
321
321
  * prepend_class_or_module_include_or_instance_extend
322
322
  * prepend_class_or_module_include_or_extend_or_instance_extend
323
323
 
324
+ Suspend methods:
325
+
326
+ * suspend_any_hooks
327
+ * suspend_any_include_hooks
328
+ * suspend_any_extend_hooks
329
+ * suspend_include_hooks
330
+ * suspend_extend_hooks
331
+ * suspend_prepend_include_hooks
332
+ * suspend_prepend_extend_hooks
333
+
334
+ * hooks_suspended?
335
+ * all_hooks_suspended?
336
+ * all_include_hooks_suspended?
337
+ * all_extend_hooks_suspended?
338
+ * include_hooks_suspended?
339
+ * extend_hooks_suspended?
340
+ * prepend_include_hooks_suspended?
341
+ * prepend_extend_hooks_suspended?
342
+
343
+ * resume_any_hooks
344
+ * resume_any_include_hooks
345
+ * resume_any_extend_hooks
346
+ * resume_include_hooks
347
+ * resume_extend_hooks
348
+ * resume_prepend_include_hooks
349
+ * resume_prepend_extend_hooks
350
+
351
+ Suspend for block methods:
352
+
353
+ * without_any_hooks
354
+ * without_any_include_hooks
355
+ * without_any_extend_hooks
356
+ * without_include_hooks
357
+ * without_extend_hooks
358
+ * without_prepend_include_hooks
359
+ * without_prepend_extend_hooks
360
+
324
361
  # License #
325
362
 
326
363
  (The MIT License)
data/README.rdoc CHANGED
@@ -44,7 +44,7 @@ Blocks can be used to return dynamically-determined modules at runtime.
44
44
 
45
45
  module SomeModule
46
46
  extend ModuleCluster
47
- include_or_extend_cascades_prepending_extends do
47
+ include_or_extend_cascades_prepend_extends do
48
48
  method_that_returns_one_or_more_modules
49
49
  end
50
50
  end
@@ -52,7 +52,7 @@ end
52
52
  Block methods can be used for nesting declarations, for instance to apply cascades only after first module/class:
53
53
 
54
54
  prepend_module_include do |class_or_module|
55
- class_or_module.include_or_extend_cascades_prepending_extends do
55
+ class_or_module.include_or_extend_cascades_prepend_extends do
56
56
  method_that_returns_one_or_more_modules
57
57
  end
58
58
  end
@@ -197,18 +197,18 @@ Cascade methods (cascades to modules and classes):
197
197
  * extend_cascades_includes
198
198
  * extend_cascades_extends
199
199
  * extend_cascades_includes_and_extends
200
- * include_cascades_prepending_includes
201
- * include_cascades_prepending_extends
202
- * include_cascades_prepending_includes_and_extends
203
- * extend_cascades_prepending_includes
204
- * extend_cascades_prepending_extends
205
- * extend_cascades_prepending_includes_and_extends
200
+ * include_cascades_prepend_includes
201
+ * include_cascades_prepend_extends
202
+ * include_cascades_prepend_includes_and_extends
203
+ * extend_cascades_prepend_includes
204
+ * extend_cascades_prepend_extends
205
+ * extend_cascades_prepend_includes_and_extends
206
206
  * include_or_extend_cascades_includes
207
207
  * include_or_extend_cascades_extends
208
208
  * include_or_extend_cascades_includes_and_extends
209
- * include_or_extend_cascades_prepending_includes
210
- * include_or_extend_cascades_prepending_extends
211
- * include_or_extend_cascades_prepending_includes_and_extends
209
+ * include_or_extend_cascades_prepend_includes
210
+ * include_or_extend_cascades_prepend_extends
211
+ * include_or_extend_cascades_prepend_includes_and_extends
212
212
 
213
213
  Cascade to class methods (does not cascade to modules):
214
214
 
@@ -218,18 +218,18 @@ Cascade to class methods (does not cascade to modules):
218
218
  * extend_cascades_includes_to_class
219
219
  * extend_cascades_extends_to_class
220
220
  * extend_cascades_includes_and_extends_to_class
221
- * include_cascades_to_class_prepending_includes
222
- * include_cascades_to_class_prepending_extends
223
- * include_cascades_to_class_prepending_includes_and_extends
224
- * extend_cascades_to_class_prepending_includes
225
- * extend_cascades_to_class_prepending_extends
226
- * extend_cascades_to_class_prepending_includes_and_extends
221
+ * include_cascades_to_class_prepend_includes
222
+ * include_cascades_to_class_prepend_extends
223
+ * include_cascades_to_class_prepend_includes_and_extends
224
+ * extend_cascades_to_class_prepend_includes
225
+ * extend_cascades_to_class_prepend_extends
226
+ * extend_cascades_to_class_prepend_includes_and_extends
227
227
  * include_or_extend_cascades_includes_to_class
228
228
  * include_or_extend_cascades_extends_to_class
229
229
  * include_or_extend_cascades_includes_and_extends_to_class
230
- * include_or_extend_cascades_to_class_prepending_includes
231
- * include_or_extend_cascades_to_class_prepending_extends
232
- * include_or_extend_cascades_to_class_prepending_includes_and_extends
230
+ * include_or_extend_cascades_to_class_prepend_includes
231
+ * include_or_extend_cascades_to_class_prepend_extends
232
+ * include_or_extend_cascades_to_class_prepend_includes_and_extends
233
233
 
234
234
  Cascade to module methods (does not cascade to classes):
235
235
 
@@ -239,18 +239,18 @@ Cascade to module methods (does not cascade to classes):
239
239
  * extend_cascades_includes_to_module
240
240
  * extend_cascades_extends_to_module
241
241
  * extend_cascades_includes_and_extends_to_module
242
- * include_cascades_to_module_prepending_includes
243
- * include_cascades_to_module_prepending_extends
244
- * include_cascades_to_module_prepending_includes_and_extends
245
- * extend_cascades_to_module_prepending_includes
246
- * extend_cascades_to_module_prepending_extends
247
- * extend_cascades_to_module_prepending_includes_and_extends
242
+ * include_cascades_to_module_prepend_includes
243
+ * include_cascades_to_module_prepend_extends
244
+ * include_cascades_to_module_prepend_includes_and_extends
245
+ * extend_cascades_to_module_prepend_includes
246
+ * extend_cascades_to_module_prepend_extends
247
+ * extend_cascades_to_module_prepend_includes_and_extends
248
248
  * include_or_extend_cascades_includes_to_module
249
249
  * include_or_extend_cascades_extends_to_module
250
250
  * include_or_extend_cascades_includes_and_extends_to_module
251
- * include_or_extend_cascades_to_module_prepending_includes
252
- * include_or_extend_cascades_to_module_prepending_extends
253
- * include_or_extend_cascades_to_module_prepending_includes_and_extends
251
+ * include_or_extend_cascades_to_module_prepend_includes
252
+ * include_or_extend_cascades_to_module_prepend_extends
253
+ * include_or_extend_cascades_to_module_prepend_includes_and_extends
254
254
 
255
255
  Module block methods:
256
256
 
@@ -311,6 +311,43 @@ Class or module or instance block methods:
311
311
  * prepend_class_or_module_include_or_instance_extend
312
312
  * prepend_class_or_module_include_or_extend_or_instance_extend
313
313
 
314
+ Suspend methods:
315
+
316
+ * suspend_any_hooks
317
+ * suspend_any_include_hooks
318
+ * suspend_any_extend_hooks
319
+ * suspend_include_hooks
320
+ * suspend_extend_hooks
321
+ * suspend_prepend_include_hooks
322
+ * suspend_prepend_extend_hooks
323
+
324
+ * hooks_suspended?
325
+ * all_hooks_suspended?
326
+ * all_include_hooks_suspended?
327
+ * all_extend_hooks_suspended?
328
+ * include_hooks_suspended?
329
+ * extend_hooks_suspended?
330
+ * prepend_include_hooks_suspended?
331
+ * prepend_extend_hooks_suspended?
332
+
333
+ * resume_any_hooks
334
+ * resume_any_include_hooks
335
+ * resume_any_extend_hooks
336
+ * resume_include_hooks
337
+ * resume_extend_hooks
338
+ * resume_prepend_include_hooks
339
+ * resume_prepend_extend_hooks
340
+
341
+ Suspend for block methods:
342
+
343
+ * without_any_hooks
344
+ * without_any_include_hooks
345
+ * without_any_extend_hooks
346
+ * without_include_hooks
347
+ * without_extend_hooks
348
+ * without_prepend_include_hooks
349
+ * without_prepend_extend_hooks
350
+
314
351
  == License
315
352
 
316
353
  (The MIT License)
@@ -9,6 +9,10 @@ module ModuleCluster
9
9
  module Module
10
10
  end
11
11
  end
12
+ module Status
13
+ end
14
+ module Suspend
15
+ end
12
16
  end
13
17
  module CascadeFeatures
14
18
  end
@@ -52,6 +56,12 @@ module ModuleCluster
52
56
  module ModuleOrInstanceCluster
53
57
  end
54
58
  end
59
+ module Suspend
60
+ module Hooks
61
+ end
62
+ module WithoutHooks
63
+ end
64
+ end
55
65
  end
56
66
 
57
67
 
@@ -62,6 +72,9 @@ require_relative 'module-cluster/_private_/ModuleCluster/CascadeFeatures.rb'
62
72
  require_relative 'module-cluster/_private_/ModuleCluster/ExtendForCascade.rb'
63
73
 
64
74
  require_relative 'module-cluster/_private_/ModuleCluster/ClusterStack/Set.rb'
75
+ require_relative 'module-cluster/_private_/ModuleCluster/ClusterStack/Set/MultiSetProxy.rb'
76
+ require_relative 'module-cluster/_private_/ModuleCluster/ClusterStack/Suspend.rb'
77
+ require_relative 'module-cluster/_private_/ModuleCluster/ClusterStack/Status.rb'
65
78
  require_relative 'module-cluster/_private_/ModuleCluster/ClusterStack/Includes.rb'
66
79
  require_relative 'module-cluster/_private_/ModuleCluster/ClusterStack/Extends.rb'
67
80
  require_relative 'module-cluster/_private_/ModuleCluster/ClusterStack/PrependsIncludes.rb'
@@ -73,6 +86,10 @@ require_relative 'module-cluster/_private_/ModuleCluster/ClusterStack/Block/Modu
73
86
  require_relative 'module-cluster/_private_/ModuleCluster/ClusterStack/Block.rb'
74
87
  require_relative 'module-cluster/_private_/ModuleCluster/ClusterStack.rb'
75
88
 
89
+ require_relative 'module-cluster/ModuleCluster/Suspend/Hooks.rb'
90
+ require_relative 'module-cluster/ModuleCluster/Suspend/WithoutHooks.rb'
91
+ require_relative 'module-cluster/ModuleCluster/Suspend.rb'
92
+
76
93
  require_relative 'module-cluster/ModuleCluster/Define/Block/Class.rb'
77
94
  require_relative 'module-cluster/ModuleCluster/Define/Block/Instance.rb'
78
95
  require_relative 'module-cluster/ModuleCluster/Define/Block/Module.rb'
@@ -95,6 +112,7 @@ require_relative 'module-cluster/ModuleCluster/Define/ClusterCascadesToModule.rb
95
112
 
96
113
  require_relative 'module-cluster/ModuleCluster/Define/Deprecated.rb'
97
114
 
115
+ require_relative 'module-cluster/ModuleCluster/Define.rb'
98
116
 
99
117
  require_relative 'module-cluster/ModuleCluster.rb'
100
118
 
@@ -3,12 +3,7 @@ module ModuleCluster
3
3
 
4
4
  extend ModuleCluster::ExtendForCascade
5
5
 
6
- include ModuleCluster::Define::Block
7
- include ModuleCluster::Define::Cluster
8
- include ModuleCluster::Define::ClusterCascades
9
- include ModuleCluster::Define::ClusterCascadesToClass
10
- include ModuleCluster::Define::ClusterCascadesToModule
11
-
12
- include ModuleCluster::Define::Deprecated
6
+ include Define
7
+ include Suspend
13
8
 
14
9
  end
@@ -1,9 +1,9 @@
1
1
 
2
2
  module ModuleCluster::Define::Block
3
3
 
4
- include ModuleCluster::Define::Block::ClassOrModule
5
- include ModuleCluster::Define::Block::ClassOrInstance
6
- include ModuleCluster::Define::Block::ClassOrModuleOrInstance
7
- include ModuleCluster::Define::Block::ModuleOrInstance
4
+ include ClassOrModule
5
+ include ClassOrInstance
6
+ include ClassOrModuleOrInstance
7
+ include ModuleOrInstance
8
8
 
9
9
  end
@@ -2,6 +2,7 @@
2
2
  module ModuleCluster::Define::Block::Class
3
3
 
4
4
  include ModuleCluster::CascadeFeatures::ClusterStack
5
+ include ModuleCluster::Suspend::WithoutHooks
5
6
 
6
7
  extend ModuleCluster::ExtendForCascade
7
8
 
@@ -18,7 +19,7 @@ module ModuleCluster::Define::Block::Class
18
19
  ###################
19
20
 
20
21
  def class_include( & runtime_block )
21
- cluster_stack.class_include( ModuleCluster::Define::Block::Class, runtime_block )
22
+ return cluster_stack.class_include( ModuleCluster::Define::Block::Class, runtime_block )
22
23
  end
23
24
 
24
25
  ##################
@@ -26,7 +27,7 @@ module ModuleCluster::Define::Block::Class
26
27
  ##################
27
28
 
28
29
  def class_extend( & runtime_block )
29
- cluster_stack.class_extend( ModuleCluster::Define::Block::Class, runtime_block )
30
+ return cluster_stack.class_extend( ModuleCluster::Define::Block::Class, runtime_block )
30
31
  end
31
32
 
32
33
  #############################
@@ -34,8 +35,9 @@ module ModuleCluster::Define::Block::Class
34
35
  #############################
35
36
 
36
37
  def class_include_or_extend( & runtime_block )
37
- class_include( & runtime_block )
38
- class_extend( & runtime_block )
38
+ include_set = class_include( & runtime_block )
39
+ extend_set = class_extend( & runtime_block )
40
+ return ModuleCluster::ClusterStack::Set::MultiSetProxy.new( include_set, extend_set )
39
41
  end
40
42
 
41
43
  ###########################
@@ -43,7 +45,7 @@ module ModuleCluster::Define::Block::Class
43
45
  ###########################
44
46
 
45
47
  def prepend_class_include( & runtime_block )
46
- cluster_stack.prepend_class_include( ModuleCluster::Define::Block::Class, runtime_block )
48
+ return cluster_stack.prepend_class_include( ModuleCluster::Define::Block::Class, runtime_block )
47
49
  end
48
50
 
49
51
  ##########################
@@ -51,7 +53,7 @@ module ModuleCluster::Define::Block::Class
51
53
  ##########################
52
54
 
53
55
  def prepend_class_extend( & runtime_block )
54
- cluster_stack.prepend_class_extend( ModuleCluster::Define::Block::Class, runtime_block )
56
+ return cluster_stack.prepend_class_extend( ModuleCluster::Define::Block::Class, runtime_block )
55
57
  end
56
58
 
57
59
  #####################################
@@ -59,8 +61,9 @@ module ModuleCluster::Define::Block::Class
59
61
  #####################################
60
62
 
61
63
  def prepend_class_include_or_extend( & runtime_block )
62
- prepend_class_include( & runtime_block )
63
- prepend_class_extend( & runtime_block )
64
+ include_set = prepend_class_include( & runtime_block )
65
+ extend_set = prepend_class_extend( & runtime_block )
66
+ return ModuleCluster::ClusterStack::Set::MultiSetProxy.new( include_set, extend_set )
64
67
  end
65
68
 
66
69
  end
@@ -3,6 +3,7 @@ module ModuleCluster::Define::Block::ClassOrInstance
3
3
 
4
4
  include ModuleCluster::Define::Block::Class
5
5
  include ModuleCluster::Define::Block::Instance
6
+ include ModuleCluster::Suspend::WithoutHooks
6
7
 
7
8
  extend ModuleCluster::ExtendForCascade
8
9
 
@@ -11,8 +12,9 @@ module ModuleCluster::Define::Block::ClassOrInstance
11
12
  ##############################
12
13
 
13
14
  def class_or_instance_extend( & runtime_block )
14
- class_extend( & runtime_block )
15
- instance_extend( & runtime_block )
15
+ class_set = class_extend( & runtime_block )
16
+ instance_set = instance_extend( & runtime_block )
17
+ return ModuleCluster::ClusterStack::Set::MultiSetProxy.new( class_set, instance_set )
16
18
  end
17
19
 
18
20
  ######################################
@@ -20,8 +22,9 @@ module ModuleCluster::Define::Block::ClassOrInstance
20
22
  ######################################
21
23
 
22
24
  def class_include_or_instance_extend( & runtime_block )
23
- class_include( & runtime_block )
24
- instance_extend( & runtime_block )
25
+ class_set = class_include( & runtime_block )
26
+ instance_set = instance_extend( & runtime_block )
27
+ return ModuleCluster::ClusterStack::Set::MultiSetProxy.new( class_set, instance_set )
25
28
  end
26
29
 
27
30
  ################################################
@@ -29,8 +32,9 @@ module ModuleCluster::Define::Block::ClassOrInstance
29
32
  ################################################
30
33
 
31
34
  def class_include_or_extend_or_instance_extend( & runtime_block )
32
- class_include_or_extend( & runtime_block )
33
- instance_extend( & runtime_block )
35
+ class_set = class_include_or_extend( & runtime_block )
36
+ instance_set = instance_extend( & runtime_block )
37
+ return ModuleCluster::ClusterStack::Set::MultiSetProxy.new( class_set, instance_set )
34
38
  end
35
39
 
36
40
  ######################################
@@ -38,8 +42,9 @@ module ModuleCluster::Define::Block::ClassOrInstance
38
42
  ######################################
39
43
 
40
44
  def prepend_class_or_instance_extend( & runtime_block )
41
- prepend_class_extend( & runtime_block )
42
- prepend_instance_extend( & runtime_block )
45
+ class_set = prepend_class_extend( & runtime_block )
46
+ instance_set = prepend_instance_extend( & runtime_block )
47
+ return ModuleCluster::ClusterStack::Set::MultiSetProxy.new( class_set, instance_set )
43
48
  end
44
49
 
45
50
  ##############################################
@@ -47,8 +52,9 @@ module ModuleCluster::Define::Block::ClassOrInstance
47
52
  ##############################################
48
53
 
49
54
  def prepend_class_include_or_instance_extend( & runtime_block )
50
- prepend_class_include( & runtime_block )
51
- prepend_instance_extend( & runtime_block )
55
+ class_set = prepend_class_include( & runtime_block )
56
+ instance_set = prepend_instance_extend( & runtime_block )
57
+ return ModuleCluster::ClusterStack::Set::MultiSetProxy.new( class_set, instance_set )
52
58
  end
53
59
 
54
60
  ########################################################
@@ -56,8 +62,9 @@ module ModuleCluster::Define::Block::ClassOrInstance
56
62
  ########################################################
57
63
 
58
64
  def prepend_class_include_or_extend_or_instance_extend( & runtime_block )
59
- prepend_class_include_or_extend( & runtime_block )
60
- prepend_instance_extend( & runtime_block )
65
+ class_set = prepend_class_include_or_extend( & runtime_block )
66
+ instance_set = prepend_instance_extend( & runtime_block )
67
+ return ModuleCluster::ClusterStack::Set::MultiSetProxy.new( class_set, instance_set )
61
68
  end
62
69
 
63
70
  end