module-cluster 1.4.8 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. data/README.md +127 -337
  2. data/lib/module-cluster.rb +1 -153
  3. data/lib/module/cluster.rb +341 -0
  4. data/lib/module/cluster/class_support.rb +22 -0
  5. data/lib/module/cluster/cluster.rb +10 -0
  6. data/lib/module/cluster/cluster/cluster_interface.rb +550 -0
  7. data/lib/module/cluster/exception/module_not_in_stack.rb +26 -0
  8. data/lib/module/cluster/instance_controller.rb +14 -0
  9. data/lib/module/cluster/instance_controller/hook_controller.rb +33 -0
  10. data/lib/module/cluster/instance_controller/hook_controller/chain_proxy.rb +511 -0
  11. data/lib/module/cluster/instance_controller/hook_controller/hook_controller_interface.rb +830 -0
  12. data/lib/module/cluster/instance_controller/instance_controller_interface.rb +269 -0
  13. data/lib/module/cluster/instance_controller/multiple_hook_controller_proxy.rb +359 -0
  14. data/lib/module/cluster/instance_controller/multiple_hook_controller_proxy/chain_proxy.rb +442 -0
  15. data/lib/module/cluster/module_support.rb +67 -0
  16. data/lib/module/namespaces.rb +13 -0
  17. data/lib/module/requires.rb +32 -0
  18. data/spec/module/cluster/cluster_spec.rb +473 -0
  19. data/spec/module/cluster/instance_controller/hook_controller_spec.rb +922 -0
  20. data/spec/module/cluster/instance_controller/multiple_hook_controller_proxy_spec.rb +1240 -0
  21. data/spec/module/cluster_spec.rb +1794 -0
  22. metadata +27 -98
  23. data/README.rdoc +0 -395
  24. data/lib/module-cluster/ModuleCluster.rb +0 -9
  25. data/lib/module-cluster/ModuleCluster/Define.rb +0 -12
  26. data/lib/module-cluster/ModuleCluster/Define/Block.rb +0 -9
  27. data/lib/module-cluster/ModuleCluster/Define/Block/CascadingClass.rb +0 -83
  28. data/lib/module-cluster/ModuleCluster/Define/Block/CascadingClassOrModule.rb +0 -70
  29. data/lib/module-cluster/ModuleCluster/Define/Block/CascadingModule.rb +0 -79
  30. data/lib/module-cluster/ModuleCluster/Define/Block/CascadingModuleOrSubclass.rb +0 -21
  31. data/lib/module-cluster/ModuleCluster/Define/Block/Class.rb +0 -77
  32. data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrInstance.rb +0 -78
  33. data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModule.rb +0 -78
  34. data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModuleOrInstance.rb +0 -78
  35. data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModuleOrSubclass.rb +0 -36
  36. data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrSubclass.rb +0 -29
  37. data/lib/module-cluster/ModuleCluster/Define/Block/Instance.rb +0 -45
  38. data/lib/module-cluster/ModuleCluster/Define/Block/Module.rb +0 -77
  39. data/lib/module-cluster/ModuleCluster/Define/Block/ModuleOrInstance.rb +0 -78
  40. data/lib/module-cluster/ModuleCluster/Define/Block/ModuleOrSubclass.rb +0 -29
  41. data/lib/module-cluster/ModuleCluster/Define/Block/Subclass.rb +0 -56
  42. data/lib/module-cluster/ModuleCluster/Define/ClassCluster.rb +0 -193
  43. data/lib/module-cluster/ModuleCluster/Define/ClassOrInstanceCluster.rb +0 -128
  44. data/lib/module-cluster/ModuleCluster/Define/Cluster.rb +0 -181
  45. data/lib/module-cluster/ModuleCluster/Define/ClusterCascades.rb +0 -185
  46. data/lib/module-cluster/ModuleCluster/Define/ClusterCascadesToClass.rb +0 -181
  47. data/lib/module-cluster/ModuleCluster/Define/ClusterCascadesToModule.rb +0 -181
  48. data/lib/module-cluster/ModuleCluster/Define/Deprecated.rb +0 -40
  49. data/lib/module-cluster/ModuleCluster/Define/InstanceCluster.rb +0 -45
  50. data/lib/module-cluster/ModuleCluster/Define/ModuleCluster.rb +0 -193
  51. data/lib/module-cluster/ModuleCluster/Define/ModuleOrClassCluster.rb +0 -209
  52. data/lib/module-cluster/ModuleCluster/Define/ModuleOrInstanceCluster.rb +0 -128
  53. data/lib/module-cluster/ModuleCluster/Define/Status.rb +0 -106
  54. data/lib/module-cluster/ModuleCluster/Suspend.rb +0 -7
  55. data/lib/module-cluster/ModuleCluster/Suspend/Hooks.rb +0 -315
  56. data/lib/module-cluster/ModuleCluster/Suspend/WithoutHooks.rb +0 -153
  57. data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures.rb +0 -77
  58. data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/ClusterStack.rb +0 -44
  59. data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/PerformCascades.rb +0 -292
  60. data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/Subclass.rb +0 -24
  61. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack.rb +0 -12
  62. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block.rb +0 -9
  63. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Class.rb +0 -36
  64. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Inherited.rb +0 -20
  65. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Instance.rb +0 -20
  66. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Module.rb +0 -36
  67. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Set.rb +0 -6
  68. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Extends.rb +0 -140
  69. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Includes.rb +0 -110
  70. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/PrependsExtends.rb +0 -140
  71. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/PrependsIncludes.rb +0 -110
  72. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Set.rb +0 -35
  73. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Set/MultiSetProxy.rb +0 -359
  74. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Status.rb +0 -55
  75. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Suspend.rb +0 -199
  76. data/lib/module-cluster/_private_/ModuleCluster/ExtendForCascade.rb +0 -34
  77. data/spec/ModuleCluster/Define/Block/CascadingClassOrModule_spec.rb +0 -285
  78. data/spec/ModuleCluster/Define/Block/CascadingClass_spec.rb +0 -254
  79. data/spec/ModuleCluster/Define/Block/CascadingModuleOrSubclass_spec.rb +0 -56
  80. data/spec/ModuleCluster/Define/Block/CascadingModule_spec.rb +0 -278
  81. data/spec/ModuleCluster/Define/Block/ClassOrInstance_spec.rb +0 -230
  82. data/spec/ModuleCluster/Define/Block/ClassOrModuleOrInstance_spec.rb +0 -238
  83. data/spec/ModuleCluster/Define/Block/ClassOrModuleOrSubclass_spec.rb +0 -54
  84. data/spec/ModuleCluster/Define/Block/ClassOrModule_spec.rb +0 -231
  85. data/spec/ModuleCluster/Define/Block/ClassOrSubclass_spec.rb +0 -54
  86. data/spec/ModuleCluster/Define/Block/Class_spec.rb +0 -224
  87. data/spec/ModuleCluster/Define/Block/Instance_spec.rb +0 -78
  88. data/spec/ModuleCluster/Define/Block/ModuleOrInstance_spec.rb +0 -54
  89. data/spec/ModuleCluster/Define/Block/ModuleOrSubclass_spec.rb +0 -51
  90. data/spec/ModuleCluster/Define/Block/Module_spec.rb +0 -230
  91. data/spec/ModuleCluster/Define/Block/Subclass_spec.rb +0 -73
  92. data/spec/ModuleCluster/Define/Block_spec.rb +0 -18
  93. data/spec/ModuleCluster/Define/ClassCluster_spec.rb +0 -728
  94. data/spec/ModuleCluster/Define/ClassOrInstanceCluster_spec.rb +0 -576
  95. data/spec/ModuleCluster/Define/ClusterCascadesToClass_spec.rb +0 -659
  96. data/spec/ModuleCluster/Define/ClusterCascadesToModule_spec.rb +0 -678
  97. data/spec/ModuleCluster/Define/ClusterCascades_spec.rb +0 -644
  98. data/spec/ModuleCluster/Define/Cluster_spec.rb +0 -708
  99. data/spec/ModuleCluster/Define/InstanceCluster_spec.rb +0 -102
  100. data/spec/ModuleCluster/Define/ModuleCluster_spec.rb +0 -728
  101. data/spec/ModuleCluster/Define/ModuleOrClassCluster_spec.rb +0 -728
  102. data/spec/ModuleCluster/Define/ModuleOrInstanceCluster_spec.rb +0 -576
  103. data/spec/ModuleCluster/Suspend/Hooks_spec.rb +0 -573
  104. data/spec/ModuleCluster/Suspend/WithoutHooks_spec.rb +0 -559
  105. data/spec/ModuleCluster_spec.rb +0 -15
  106. data/spec/_private_/ModuleCluster/CascadeFeatures/PerformCascades_spec.rb +0 -386
  107. data/spec/_private_/ModuleCluster/ClusterStack/Set/MultiSetProxy_spec.rb +0 -419
  108. data/spec/_private_/ModuleCluster/ClusterStack/Suspend_spec.rb +0 -242
@@ -1,9 +0,0 @@
1
-
2
- module ::ModuleCluster
3
-
4
- extend ::ModuleCluster::ExtendForCascade
5
-
6
- include Define
7
- include Suspend
8
-
9
- end
@@ -1,12 +0,0 @@
1
-
2
- module ::ModuleCluster::Define
3
-
4
- include Block
5
- include Cluster
6
- include ClusterCascades
7
- include ClusterCascadesToClass
8
- include ClusterCascadesToModule
9
-
10
- include Deprecated
11
-
12
- end
@@ -1,9 +0,0 @@
1
-
2
- module ::ModuleCluster::Define::Block
3
-
4
- include ClassOrModule
5
- include ClassOrInstance
6
- include ClassOrModuleOrInstance
7
- include ModuleOrInstance
8
-
9
- end
@@ -1,83 +0,0 @@
1
-
2
- module ::ModuleCluster::Define::Block::CascadingClass
3
-
4
- include ::ModuleCluster::CascadeFeatures::ClusterStack
5
- include ::ModuleCluster::Suspend::WithoutHooks
6
-
7
- include ::ModuleCluster::Define::Block::Subclass
8
-
9
- extend ::ModuleCluster::ExtendForCascade
10
-
11
- ##########################
12
- # self.should_cascade? #
13
- ##########################
14
-
15
- def self.should_cascade?( class_or_module )
16
- return true
17
- end
18
-
19
- ############################
20
- # self.should_run_block? #
21
- ############################
22
-
23
- def self.should_run_block?( hooked_instance )
24
- return hooked_instance.is_a?( Class )
25
- end
26
-
27
- #############################
28
- # cascading_class_include #
29
- #############################
30
-
31
- def cascading_class_include( & runtime_block )
32
- subclass( & runtime_block )
33
- return cluster_stack.class_include( ::ModuleCluster::Define::Block::CascadingClass, __method__, runtime_block )
34
- end
35
-
36
- ############################
37
- # cascading_class_extend #
38
- ############################
39
-
40
- def cascading_class_extend( & runtime_block )
41
- subclass( & runtime_block )
42
- return cluster_stack.class_extend( ::ModuleCluster::Define::Block::CascadingClass, __method__, runtime_block )
43
- end
44
-
45
- #######################################
46
- # cascading_class_include_or_extend #
47
- #######################################
48
-
49
- def cascading_class_include_or_extend( & runtime_block )
50
- include_set = cascading_class_include( & runtime_block )
51
- extend_set = cascading_class_extend( & runtime_block )
52
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( include_set, extend_set )
53
- end
54
-
55
- #####################################
56
- # cascading_prepend_class_include #
57
- #####################################
58
-
59
- def cascading_prepend_class_include( & runtime_block )
60
- subclass( & runtime_block )
61
- return cluster_stack.prepend_class_include( ::ModuleCluster::Define::Block::CascadingClass, __method__, runtime_block )
62
- end
63
-
64
- ####################################
65
- # cascading_prepend_class_extend #
66
- ####################################
67
-
68
- def cascading_prepend_class_extend( & runtime_block )
69
- subclass( & runtime_block )
70
- return cluster_stack.prepend_class_extend( ::ModuleCluster::Define::Block::CascadingClass, __method__, runtime_block )
71
- end
72
-
73
- ###############################################
74
- # cascading_prepend_class_include_or_extend #
75
- ###############################################
76
-
77
- def cascading_prepend_class_include_or_extend( & runtime_block )
78
- include_set = cascading_prepend_class_include( & runtime_block )
79
- extend_set = cascading_prepend_class_extend( & runtime_block )
80
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( include_set, extend_set )
81
- end
82
-
83
- end
@@ -1,70 +0,0 @@
1
-
2
- module ::ModuleCluster::Define::Block::CascadingClassOrModule
3
-
4
- include ::ModuleCluster::Define::Block::CascadingClass
5
- include ::ModuleCluster::Define::Block::CascadingModule
6
- include ::ModuleCluster::Suspend::WithoutHooks
7
-
8
- extend ::ModuleCluster::ExtendForCascade
9
-
10
- #######################################
11
- # cascading_class_or_module_include #
12
- #######################################
13
-
14
- def cascading_class_or_module_include( & runtime_block )
15
- class_set = cascading_class_include( & runtime_block )
16
- module_set = cascading_module_include( & runtime_block )
17
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( class_set, module_set )
18
- end
19
-
20
- ######################################
21
- # cascading_class_or_module_extend #
22
- ######################################
23
-
24
- def cascading_class_or_module_extend( & runtime_block )
25
- class_set = cascading_class_extend( & runtime_block )
26
- module_set = cascading_module_extend( & runtime_block )
27
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( class_set, module_set )
28
- end
29
-
30
- #################################################
31
- # cascading_class_or_module_include_or_extend #
32
- #################################################
33
-
34
- def cascading_class_or_module_include_or_extend( & runtime_block )
35
- include_set = cascading_class_or_module_include( & runtime_block )
36
- extend_set = cascading_class_or_module_extend( & runtime_block )
37
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( include_set, extend_set )
38
- end
39
-
40
- ###############################################
41
- # cascading_prepend_class_or_module_include #
42
- ###############################################
43
-
44
- def cascading_prepend_class_or_module_include( & runtime_block )
45
- class_set = cascading_prepend_class_include( & runtime_block )
46
- module_set = cascading_prepend_module_include( & runtime_block )
47
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( class_set, module_set )
48
- end
49
-
50
- ##############################################
51
- # cascading_prepend_class_or_module_extend #
52
- ##############################################
53
-
54
- def cascading_prepend_class_or_module_extend( & runtime_block )
55
- class_set = cascading_prepend_class_extend( & runtime_block )
56
- module_set = cascading_prepend_module_extend( & runtime_block )
57
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( class_set, module_set )
58
- end
59
-
60
- #########################################################
61
- # cascading_prepend_class_or_module_include_or_extend #
62
- #########################################################
63
-
64
- def cascading_prepend_class_or_module_include_or_extend( & runtime_block )
65
- include_set = cascading_prepend_class_or_module_include( & runtime_block )
66
- extend_set = cascading_prepend_class_or_module_extend( & runtime_block )
67
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( include_set, extend_set )
68
- end
69
-
70
- end
@@ -1,79 +0,0 @@
1
-
2
- module ::ModuleCluster::Define::Block::CascadingModule
3
-
4
- include ::ModuleCluster::CascadeFeatures::ClusterStack
5
- include ::ModuleCluster::Suspend::WithoutHooks
6
-
7
- include ::ModuleCluster::Define::Block::Subclass
8
-
9
- extend ::ModuleCluster::ExtendForCascade
10
-
11
- ##########################
12
- # self.should_cascade? #
13
- ##########################
14
-
15
- def self.should_cascade?( class_or_module )
16
- return true
17
- end
18
-
19
- ############################
20
- # self.should_run_block? #
21
- ############################
22
-
23
- def self.should_run_block?( hooked_instance )
24
- return hooked_instance.is_a?( Module ) && ! hooked_instance.is_a?( Class )
25
- end
26
-
27
- ##############################
28
- # cascading_module_include #
29
- ##############################
30
-
31
- def cascading_module_include( & runtime_block )
32
- return cluster_stack.module_include( ::ModuleCluster::Define::Block::CascadingModule, __method__, runtime_block )
33
- end
34
-
35
- #############################
36
- # cascading_module_extend #
37
- #############################
38
-
39
- def cascading_module_extend( & runtime_block )
40
- return cluster_stack.module_extend( ::ModuleCluster::Define::Block::CascadingModule, __method__, runtime_block )
41
- end
42
-
43
- ########################################
44
- # cascading_module_include_or_extend #
45
- ########################################
46
-
47
- def cascading_module_include_or_extend( & runtime_block )
48
- include_set = cascading_module_include( & runtime_block )
49
- extend_set = cascading_module_extend( & runtime_block )
50
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( include_set, extend_set )
51
- end
52
-
53
- ######################################
54
- # cascading_prepend_module_include #
55
- ######################################
56
-
57
- def cascading_prepend_module_include( & runtime_block )
58
- return cluster_stack.prepend_module_include( ::ModuleCluster::Define::Block::CascadingModule, __method__, runtime_block )
59
- end
60
-
61
- #####################################
62
- # cascading_prepend_module_extend #
63
- #####################################
64
-
65
- def cascading_prepend_module_extend( & runtime_block )
66
- return cluster_stack.prepend_module_extend( ::ModuleCluster::Define::Block::CascadingModule, __method__, runtime_block )
67
- end
68
-
69
- ################################################
70
- # cascading_prepend_module_include_or_extend #
71
- ################################################
72
-
73
- def cascading_prepend_module_include_or_extend( & runtime_block )
74
- include_set = cascading_prepend_module_include( & runtime_block )
75
- extend_set = cascading_prepend_module_extend( & runtime_block )
76
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( include_set, extend_set )
77
- end
78
-
79
- end
@@ -1,21 +0,0 @@
1
-
2
- module ::ModuleCluster::Define::Block::CascadingModuleOrSubclass
3
-
4
- include ::ModuleCluster::CascadeFeatures::ClusterStack
5
- include ::ModuleCluster::Define::Block::CascadingModule
6
- include ::ModuleCluster::Define::Block::Subclass
7
- include ::ModuleCluster::Suspend::WithoutHooks
8
-
9
- extend ::ModuleCluster::ExtendForCascade
10
-
11
- ##########################################
12
- # cascading_module_include_or_subclass #
13
- ##########################################
14
-
15
- def cascading_module_include_or_subclass( & runtime_block )
16
- module_set = cascading_module_include( & runtime_block )
17
- subclass_set = subclass( & runtime_block )
18
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( module_set, subclass_set )
19
- end
20
-
21
- end
@@ -1,77 +0,0 @@
1
-
2
- module ::ModuleCluster::Define::Block::Class
3
-
4
- include ::ModuleCluster::CascadeFeatures::ClusterStack
5
- include ::ModuleCluster::Suspend::WithoutHooks
6
-
7
- extend ::ModuleCluster::ExtendForCascade
8
-
9
- ##########################
10
- # self.should_cascade? #
11
- ##########################
12
-
13
- def self.should_cascade?( class_or_module )
14
- return false
15
- end
16
-
17
- ############################
18
- # self.should_run_block? #
19
- ############################
20
-
21
- def self.should_run_block?( hooked_instance )
22
- return hooked_instance.is_a?( Class )
23
- end
24
-
25
- ###################
26
- # class_include #
27
- ###################
28
-
29
- def class_include( & runtime_block )
30
- return cluster_stack.class_include( ::ModuleCluster::Define::Block::Class, __method__, runtime_block )
31
- end
32
-
33
- ##################
34
- # class_extend #
35
- ##################
36
-
37
- def class_extend( & runtime_block )
38
- return cluster_stack.class_extend( ::ModuleCluster::Define::Block::Class, __method__, runtime_block )
39
- end
40
-
41
- #############################
42
- # class_include_or_extend #
43
- #############################
44
-
45
- def class_include_or_extend( & runtime_block )
46
- include_set = class_include( & runtime_block )
47
- extend_set = class_extend( & runtime_block )
48
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( include_set, extend_set )
49
- end
50
-
51
- ###########################
52
- # prepend_class_include #
53
- ###########################
54
-
55
- def prepend_class_include( & runtime_block )
56
- return cluster_stack.prepend_class_include( ::ModuleCluster::Define::Block::Class, __method__, runtime_block )
57
- end
58
-
59
- ##########################
60
- # prepend_class_extend #
61
- ##########################
62
-
63
- def prepend_class_extend( & runtime_block )
64
- return cluster_stack.prepend_class_extend( ::ModuleCluster::Define::Block::Class, __method__, runtime_block )
65
- end
66
-
67
- #####################################
68
- # prepend_class_include_or_extend #
69
- #####################################
70
-
71
- def prepend_class_include_or_extend( & runtime_block )
72
- include_set = prepend_class_include( & runtime_block )
73
- extend_set = prepend_class_extend( & runtime_block )
74
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( include_set, extend_set )
75
- end
76
-
77
- end
@@ -1,78 +0,0 @@
1
-
2
- module ::ModuleCluster::Define::Block::ClassOrInstance
3
-
4
- include ::ModuleCluster::Define::Block::Class
5
- include ::ModuleCluster::Define::Block::Instance
6
- include ::ModuleCluster::Suspend::WithoutHooks
7
-
8
- extend ::ModuleCluster::ExtendForCascade
9
-
10
- ##########################
11
- # self.should_cascade? #
12
- ##########################
13
-
14
- def self.should_cascade?( class_or_module )
15
- return false
16
- end
17
-
18
- ##############################
19
- # class_or_instance_extend #
20
- ##############################
21
-
22
- def class_or_instance_extend( & runtime_block )
23
- class_set = class_extend( & runtime_block )
24
- instance_set = instance_extend( & runtime_block )
25
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( class_set, instance_set )
26
- end
27
-
28
- ######################################
29
- # class_include_or_instance_extend #
30
- ######################################
31
-
32
- def class_include_or_instance_extend( & runtime_block )
33
- class_set = class_include( & runtime_block )
34
- instance_set = instance_extend( & runtime_block )
35
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( class_set, instance_set )
36
- end
37
-
38
- ################################################
39
- # class_include_or_extend_or_instance_extend #
40
- ################################################
41
-
42
- def class_include_or_extend_or_instance_extend( & runtime_block )
43
- class_set = class_include_or_extend( & runtime_block )
44
- instance_set = instance_extend( & runtime_block )
45
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( class_set, instance_set )
46
- end
47
-
48
- ######################################
49
- # prepend_class_or_instance_extend #
50
- ######################################
51
-
52
- def prepend_class_or_instance_extend( & runtime_block )
53
- class_set = prepend_class_extend( & runtime_block )
54
- instance_set = prepend_instance_extend( & runtime_block )
55
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( class_set, instance_set )
56
- end
57
-
58
- ##############################################
59
- # prepend_class_include_or_instance_extend #
60
- ##############################################
61
-
62
- def prepend_class_include_or_instance_extend( & runtime_block )
63
- class_set = prepend_class_include( & runtime_block )
64
- instance_set = prepend_instance_extend( & runtime_block )
65
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( class_set, instance_set )
66
- end
67
-
68
- ########################################################
69
- # prepend_class_include_or_extend_or_instance_extend #
70
- ########################################################
71
-
72
- def prepend_class_include_or_extend_or_instance_extend( & runtime_block )
73
- class_set = prepend_class_include_or_extend( & runtime_block )
74
- instance_set = prepend_instance_extend( & runtime_block )
75
- return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( class_set, instance_set )
76
- end
77
-
78
- end