module-cluster 1.3.7 → 1.4.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/README.md +146 -1
- data/README.rdoc +146 -1
- data/lib/module-cluster.rb +54 -12
- data/lib/module-cluster/ModuleCluster/Define/Block.rb +3 -0
- data/lib/module-cluster/ModuleCluster/Define/Block/Class.rb +16 -4
- data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrInstance.rb +63 -0
- data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModule.rb +2 -0
- data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModuleOrInstance.rb +63 -0
- data/lib/module-cluster/ModuleCluster/Define/Block/Instance.rb +32 -0
- data/lib/module-cluster/ModuleCluster/Define/Block/Module.rb +16 -4
- data/lib/module-cluster/ModuleCluster/Define/Block/ModuleOrInstance.rb +63 -0
- data/lib/module-cluster/ModuleCluster/Define/ClassCluster.rb +200 -0
- data/lib/module-cluster/ModuleCluster/Define/ClassOrInstanceCluster.rb +127 -0
- data/lib/module-cluster/ModuleCluster/Define/Cluster.rb +7 -19
- data/lib/module-cluster/ModuleCluster/Define/ClusterCascades.rb +5 -20
- data/lib/module-cluster/ModuleCluster/Define/ClusterCascadesToClass.rb +9 -26
- data/lib/module-cluster/ModuleCluster/Define/ClusterCascadesToModule.rb +9 -26
- data/lib/module-cluster/ModuleCluster/Define/InstanceCluster.rb +46 -0
- data/lib/module-cluster/ModuleCluster/Define/ModuleCluster.rb +200 -0
- data/lib/module-cluster/ModuleCluster/Define/ModuleOrClassCluster.rb +208 -0
- data/lib/module-cluster/ModuleCluster/Define/ModuleOrInstanceCluster.rb +127 -0
- data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures.rb +54 -0
- data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/ClusterStack.rb +44 -0
- data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/PerformCascades.rb +209 -0
- data/lib/module-cluster/{ModuleCluster → _private_/ModuleCluster}/ClusterStack.rb +0 -2
- data/lib/module-cluster/{ModuleCluster → _private_/ModuleCluster}/ClusterStack/Block.rb +1 -2
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Class.rb +36 -0
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Instance.rb +20 -0
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Module.rb +36 -0
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Set.rb +2 -0
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Extends.rb +108 -0
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Includes.rb +84 -0
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/PrependsExtends.rb +108 -0
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/PrependsIncludes.rb +84 -0
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Set.rb +7 -0
- data/lib/module-cluster/{ModuleCluster → _private_/ModuleCluster}/ExtendForCascade.rb +0 -0
- data/spec/ModuleCluster/Define/Block/ClassOrInstance_spec.rb +230 -0
- data/spec/ModuleCluster/Define/Block/ClassOrModuleOrInstance_spec.rb +238 -0
- data/spec/ModuleCluster/Define/Block/ClassOrModule_spec.rb +231 -0
- data/spec/ModuleCluster/Define/Block/Class_spec.rb +224 -0
- data/spec/ModuleCluster/Define/Block/Instance_spec.rb +78 -0
- data/spec/ModuleCluster/Define/Block/ModuleOrInstance_spec.rb +54 -0
- data/spec/ModuleCluster/Define/Block/Module_spec.rb +224 -0
- data/spec/ModuleCluster/Define/Block_spec.rb +18 -0
- data/spec/ModuleCluster/Define/ClassCluster_spec.rb +728 -0
- data/spec/ModuleCluster/Define/ClassOrInstanceCluster_spec.rb +576 -0
- data/spec/ModuleCluster/Define/ClusterCascadesToClass_spec.rb +298 -60
- data/spec/ModuleCluster/Define/ClusterCascadesToModule_spec.rb +307 -61
- data/spec/ModuleCluster/Define/ClusterCascades_spec.rb +335 -36
- data/spec/ModuleCluster/Define/Cluster_spec.rb +447 -14
- data/spec/ModuleCluster/Define/InstanceCluster_spec.rb +102 -0
- data/spec/ModuleCluster/Define/ModuleCluster_spec.rb +728 -0
- data/spec/ModuleCluster/Define/ModuleOrClassCluster_spec.rb +728 -0
- data/spec/ModuleCluster/Define/ModuleOrInstanceCluster_spec.rb +576 -0
- data/spec/_private_/ModuleCluster/CascadeFeatures/PerformCascades_spec.rb +278 -0
- metadata +42 -13
- data/lib/module-cluster/ModuleCluster/CascadeFeatures.rb +0 -197
- data/lib/module-cluster/ModuleCluster/ClusterStack/Block/Class.rb +0 -36
- data/lib/module-cluster/ModuleCluster/ClusterStack/Block/Module.rb +0 -36
- data/lib/module-cluster/ModuleCluster/ClusterStack/Extends.rb +0 -29
- data/lib/module-cluster/ModuleCluster/ClusterStack/Includes.rb +0 -28
- data/lib/module-cluster/ModuleCluster/ClusterStack/PrependsExtends.rb +0 -28
- data/lib/module-cluster/ModuleCluster/ClusterStack/PrependsIncludes.rb +0 -28
- data/lib/module-cluster/ModuleCluster/Define/ClusterStack.rb +0 -26
@@ -0,0 +1,127 @@
|
|
1
|
+
|
2
|
+
module ModuleCluster::Define::ClassOrInstanceCluster
|
3
|
+
|
4
|
+
include ModuleCluster::CascadeFeatures::ClusterStack
|
5
|
+
|
6
|
+
extend ModuleCluster::ExtendForCascade
|
7
|
+
|
8
|
+
####################################
|
9
|
+
# self.should_include_or_extend? #
|
10
|
+
####################################
|
11
|
+
|
12
|
+
def self.should_include_or_extend?( hooked_instance )
|
13
|
+
return hooked_instance.is_a?( Class ) || ! hooked_instance.is_a?( Module )
|
14
|
+
end
|
15
|
+
|
16
|
+
##########################
|
17
|
+
# self.should_cascade? #
|
18
|
+
##########################
|
19
|
+
|
20
|
+
def self.should_cascade?( class_or_instance_or_module )
|
21
|
+
return false
|
22
|
+
end
|
23
|
+
|
24
|
+
#########################################################################
|
25
|
+
# class_include_or_extend_or_instance_extend_also_includes_or_extends #
|
26
|
+
#########################################################################
|
27
|
+
|
28
|
+
def class_include_or_extend_or_instance_extend_also_includes_or_extends( *includes_or_extends, & runtime_includes_or_extends_block )
|
29
|
+
cluster_stack.class_include_includes( ModuleCluster::Define::ClassOrInstanceCluster, __method__, includes_or_extends, runtime_includes_or_extends_block )
|
30
|
+
cluster_stack.class_extend_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, includes_or_extends, runtime_includes_or_extends_block )
|
31
|
+
cluster_stack.instance_extend_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, includes_or_extends, runtime_includes_or_extends_block )
|
32
|
+
return self
|
33
|
+
end
|
34
|
+
|
35
|
+
#############################################################
|
36
|
+
# class_include_or_extend_or_instance_extend_also_extends #
|
37
|
+
#############################################################
|
38
|
+
|
39
|
+
def class_include_or_extend_or_instance_extend_also_extends( *includes_or_extends, & runtime_includes_or_extends_block )
|
40
|
+
cluster_stack.class_include_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, includes_or_extends, runtime_includes_or_extends_block )
|
41
|
+
cluster_stack.class_extend_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, includes_or_extends, runtime_includes_or_extends_block )
|
42
|
+
cluster_stack.instance_extend_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, includes_or_extends, runtime_includes_or_extends_block )
|
43
|
+
return self
|
44
|
+
end
|
45
|
+
|
46
|
+
###############################################################
|
47
|
+
# class_include_or_instance_extend_also_includes_or_extends #
|
48
|
+
###############################################################
|
49
|
+
|
50
|
+
def class_include_or_instance_extend_also_includes_or_extends( *includes_or_extends, & runtime_includes_or_extends_block )
|
51
|
+
cluster_stack.class_include_includes( ModuleCluster::Define::ClassOrInstanceCluster, __method__, includes_or_extends, runtime_includes_or_extends_block )
|
52
|
+
cluster_stack.instance_extend_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, includes_or_extends, runtime_includes_or_extends_block )
|
53
|
+
return self
|
54
|
+
end
|
55
|
+
|
56
|
+
###################################################
|
57
|
+
# class_include_or_instance_extend_also_extends #
|
58
|
+
###################################################
|
59
|
+
|
60
|
+
def class_include_or_instance_extend_also_extends( *extends, & runtime_extends_block )
|
61
|
+
cluster_stack.class_include_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, extends, runtime_extends_block )
|
62
|
+
cluster_stack.instance_extend_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, extends, runtime_extends_block )
|
63
|
+
return self
|
64
|
+
end
|
65
|
+
|
66
|
+
###########################################
|
67
|
+
# class_or_instance_extend_also_extends #
|
68
|
+
###########################################
|
69
|
+
|
70
|
+
def class_or_instance_extend_also_extends( *extends, & runtime_extends_block )
|
71
|
+
cluster_stack.class_extend_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, extends, runtime_extends_block )
|
72
|
+
cluster_stack.instance_extend_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, extends, runtime_extends_block )
|
73
|
+
return self
|
74
|
+
end
|
75
|
+
|
76
|
+
#############################################################################
|
77
|
+
# class_include_or_extend_or_instance_extend_prepends_includes_or_extends #
|
78
|
+
#############################################################################
|
79
|
+
|
80
|
+
def class_include_or_extend_or_instance_extend_prepends_includes_or_extends( *includes_or_extends, & runtime_includes_or_extends_block )
|
81
|
+
cluster_stack.class_include_prepends_includes( ModuleCluster::Define::ClassOrInstanceCluster, __method__, includes_or_extends, runtime_includes_or_extends_block )
|
82
|
+
cluster_stack.class_extend_prepends_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, includes_or_extends, runtime_includes_or_extends_block )
|
83
|
+
cluster_stack.instance_extend_prepends_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, includes_or_extends, runtime_includes_or_extends_block )
|
84
|
+
return self
|
85
|
+
end
|
86
|
+
|
87
|
+
###################################################################
|
88
|
+
# class_include_or_instance_extend_prepends_includes_or_extends #
|
89
|
+
###################################################################
|
90
|
+
|
91
|
+
def class_include_or_instance_extend_prepends_includes_or_extends( *includes_or_extends, & runtime_includes_or_extends_block )
|
92
|
+
cluster_stack.class_include_prepends_includes( ModuleCluster::Define::ClassOrInstanceCluster, __method__, includes_or_extends, runtime_includes_or_extends_block )
|
93
|
+
cluster_stack.instance_extend_prepends_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, includes_or_extends, runtime_includes_or_extends_block )
|
94
|
+
return self
|
95
|
+
end
|
96
|
+
|
97
|
+
#################################################################
|
98
|
+
# class_include_or_extend_or_instance_extend_prepends_extends #
|
99
|
+
#################################################################
|
100
|
+
|
101
|
+
def class_include_or_extend_or_instance_extend_prepends_extends( *includes_or_extends, & runtime_includes_or_extends_block )
|
102
|
+
cluster_stack.class_include_prepends_includes( ModuleCluster::Define::ClassOrInstanceCluster, __method__, includes_or_extends, runtime_includes_or_extends_block )
|
103
|
+
cluster_stack.instance_extend_prepends_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, includes_or_extends, runtime_includes_or_extends_block )
|
104
|
+
return self
|
105
|
+
end
|
106
|
+
|
107
|
+
#######################################################
|
108
|
+
# class_include_or_instance_extend_prepends_extends #
|
109
|
+
#######################################################
|
110
|
+
|
111
|
+
def class_include_or_instance_extend_prepends_extends( *extends, & runtime_extends_block )
|
112
|
+
cluster_stack.class_include_prepends_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, extends, runtime_extends_block )
|
113
|
+
cluster_stack.instance_extend_prepends_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, extends, runtime_extends_block )
|
114
|
+
return self
|
115
|
+
end
|
116
|
+
|
117
|
+
###############################################
|
118
|
+
# class_or_instance_extend_prepends_extends #
|
119
|
+
###############################################
|
120
|
+
|
121
|
+
def class_or_instance_extend_prepends_extends( *extends, & runtime_extends_block )
|
122
|
+
cluster_stack.class_extend_prepends_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, extends, runtime_extends_block )
|
123
|
+
cluster_stack.instance_extend_prepends_extends( ModuleCluster::Define::ClassOrInstanceCluster, __method__, extends, runtime_extends_block )
|
124
|
+
return self
|
125
|
+
end
|
126
|
+
|
127
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
module ModuleCluster::Define::Cluster
|
3
3
|
|
4
|
-
include ModuleCluster::
|
4
|
+
include ModuleCluster::CascadeFeatures::ClusterStack
|
5
5
|
|
6
6
|
extend ModuleCluster::ExtendForCascade
|
7
7
|
|
@@ -18,17 +18,9 @@ module ModuleCluster::Define::Cluster
|
|
18
18
|
##########################
|
19
19
|
|
20
20
|
def self.should_cascade?( class_or_module )
|
21
|
-
return
|
22
|
-
end
|
23
|
-
|
24
|
-
###########################
|
25
|
-
# self.perform_cascades #
|
26
|
-
###########################
|
27
|
-
|
28
|
-
def self.perform_cascades( class_or_module, method, modules )
|
29
|
-
# nothing required
|
21
|
+
return false
|
30
22
|
end
|
31
|
-
|
23
|
+
|
32
24
|
###########################
|
33
25
|
# include_also_includes #
|
34
26
|
###########################
|
@@ -52,8 +44,7 @@ module ModuleCluster::Define::Cluster
|
|
52
44
|
#######################################
|
53
45
|
|
54
46
|
def include_also_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
55
|
-
|
56
|
-
include_also_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
47
|
+
cluster_stack.include_includes_and_extends( ModuleCluster::Define::Cluster, __method__, includes_and_extends, runtime_includes_and_extends_block )
|
57
48
|
return self
|
58
49
|
end
|
59
50
|
|
@@ -80,8 +71,7 @@ module ModuleCluster::Define::Cluster
|
|
80
71
|
######################################
|
81
72
|
|
82
73
|
def extend_also_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
83
|
-
|
84
|
-
extend_also_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
74
|
+
cluster_stack.extend_includes_and_extends( ModuleCluster::Define::Cluster, __method__, includes_and_extends, runtime_includes_and_extends_block )
|
85
75
|
return self
|
86
76
|
end
|
87
77
|
|
@@ -108,8 +98,7 @@ module ModuleCluster::Define::Cluster
|
|
108
98
|
###########################################
|
109
99
|
|
110
100
|
def include_prepends_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
111
|
-
|
112
|
-
include_prepends_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
101
|
+
cluster_stack.include_prepends_includes_and_extends( ModuleCluster::Define::Cluster, __method__, includes_and_extends, runtime_includes_and_extends_block )
|
113
102
|
return self
|
114
103
|
end
|
115
104
|
|
@@ -136,8 +125,7 @@ module ModuleCluster::Define::Cluster
|
|
136
125
|
##########################################
|
137
126
|
|
138
127
|
def extend_prepends_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
139
|
-
|
140
|
-
extend_prepends_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
128
|
+
cluster_stack.extend_prepends_includes_and_extends( ModuleCluster::Define::Cluster, __method__, includes_and_extends, runtime_includes_and_extends_block )
|
141
129
|
return self
|
142
130
|
end
|
143
131
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
module ModuleCluster::Define::ClusterCascades
|
3
3
|
|
4
|
-
include ModuleCluster::
|
4
|
+
include ModuleCluster::CascadeFeatures::ClusterStack
|
5
5
|
|
6
6
|
extend ModuleCluster::ExtendForCascade
|
7
7
|
|
@@ -9,7 +9,7 @@ module ModuleCluster::Define::ClusterCascades
|
|
9
9
|
# self.should_include_or_extend? #
|
10
10
|
####################################
|
11
11
|
|
12
|
-
def self.should_include_or_extend?(
|
12
|
+
def self.should_include_or_extend?( hooked_instance )
|
13
13
|
return true
|
14
14
|
end
|
15
15
|
|
@@ -17,23 +17,10 @@ module ModuleCluster::Define::ClusterCascades
|
|
17
17
|
# self.should_cascade? #
|
18
18
|
##########################
|
19
19
|
|
20
|
-
def self.should_cascade?(
|
20
|
+
def self.should_cascade?( hooked_instance )
|
21
21
|
return true
|
22
22
|
end
|
23
23
|
|
24
|
-
###########################
|
25
|
-
# self.perform_cascades #
|
26
|
-
###########################
|
27
|
-
|
28
|
-
def self.perform_cascades( class_or_module, method, modules )
|
29
|
-
class_or_module.instance_eval do
|
30
|
-
unless is_a?( Class )
|
31
|
-
extend ModuleCluster::Define::ClusterCascades
|
32
|
-
__send__( method, *modules )
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
24
|
###############################
|
38
25
|
# include_cascades_includes #
|
39
26
|
###############################
|
@@ -57,8 +44,7 @@ module ModuleCluster::Define::ClusterCascades
|
|
57
44
|
###########################################
|
58
45
|
|
59
46
|
def include_cascades_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
60
|
-
|
61
|
-
include_cascades_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
47
|
+
cluster_stack.include_includes_and_extends( ModuleCluster::Define::ClusterCascades, __method__, includes_and_extends, runtime_includes_and_extends_block )
|
62
48
|
return self
|
63
49
|
end
|
64
50
|
|
@@ -85,8 +71,7 @@ module ModuleCluster::Define::ClusterCascades
|
|
85
71
|
##########################################
|
86
72
|
|
87
73
|
def extend_cascades_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
88
|
-
|
89
|
-
extend_cascades_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
74
|
+
cluster_stack.extend_includes_and_extends( ModuleCluster::Define::ClusterCascades, __method__, includes_and_extends, runtime_includes_and_extends_block )
|
90
75
|
return self
|
91
76
|
end
|
92
77
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
module ModuleCluster::Define::ClusterCascadesToClass
|
3
3
|
|
4
|
-
include ModuleCluster::
|
4
|
+
include ModuleCluster::CascadeFeatures::ClusterStack
|
5
5
|
|
6
6
|
extend ModuleCluster::ExtendForCascade
|
7
7
|
|
@@ -9,29 +9,16 @@ module ModuleCluster::Define::ClusterCascadesToClass
|
|
9
9
|
# self.should_include_or_extend? #
|
10
10
|
####################################
|
11
11
|
|
12
|
-
def self.should_include_or_extend?(
|
13
|
-
return
|
12
|
+
def self.should_include_or_extend?( hooked_instance )
|
13
|
+
return hooked_instance.is_a?( Class )
|
14
14
|
end
|
15
15
|
|
16
16
|
##########################
|
17
17
|
# self.should_cascade? #
|
18
18
|
##########################
|
19
19
|
|
20
|
-
def self.should_cascade?(
|
21
|
-
return !
|
22
|
-
end
|
23
|
-
|
24
|
-
###########################
|
25
|
-
# self.perform_cascades #
|
26
|
-
###########################
|
27
|
-
|
28
|
-
def self.perform_cascades( class_or_module, method, modules )
|
29
|
-
class_or_module.instance_eval do
|
30
|
-
unless is_a?( Class )
|
31
|
-
extend ModuleCluster::Define::ClusterCascadesToClass
|
32
|
-
__send__( method, *modules )
|
33
|
-
end
|
34
|
-
end
|
20
|
+
def self.should_cascade?( hooked_instance )
|
21
|
+
return hooked_instance.is_a?( Module ) && ! hooked_instance.is_a?( Class )
|
35
22
|
end
|
36
23
|
|
37
24
|
########################################
|
@@ -57,8 +44,7 @@ module ModuleCluster::Define::ClusterCascadesToClass
|
|
57
44
|
####################################################
|
58
45
|
|
59
46
|
def include_cascades_includes_and_extends_to_class( *includes_and_extends, & runtime_includes_and_extends_block )
|
60
|
-
|
61
|
-
include_cascades_extends_to_class( *includes_and_extends, & runtime_includes_and_extends_block )
|
47
|
+
cluster_stack.include_includes_and_extends( ModuleCluster::Define::ClusterCascadesToClass, __method__, includes_and_extends, runtime_includes_and_extends_block )
|
62
48
|
return self
|
63
49
|
end
|
64
50
|
|
@@ -85,8 +71,7 @@ module ModuleCluster::Define::ClusterCascadesToClass
|
|
85
71
|
###################################################
|
86
72
|
|
87
73
|
def extend_cascades_includes_and_extends_to_class( *includes_and_extends, & runtime_includes_and_extends_block )
|
88
|
-
|
89
|
-
extend_cascades_extends_to_class( *includes_and_extends, & runtime_includes_and_extends_block )
|
74
|
+
cluster_stack.extend_includes_and_extends( ModuleCluster::Define::ClusterCascadesToClass, __method__, includes_and_extends, runtime_includes_and_extends_block )
|
90
75
|
return self
|
91
76
|
end
|
92
77
|
|
@@ -113,8 +98,7 @@ module ModuleCluster::Define::ClusterCascadesToClass
|
|
113
98
|
###############################################################
|
114
99
|
|
115
100
|
def include_cascades_to_class_prepending_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
116
|
-
|
117
|
-
include_cascades_to_class_prepending_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
101
|
+
cluster_stack.include_prepends_includes_and_extends( ModuleCluster::Define::ClusterCascadesToClass, __method__, includes_and_extends, runtime_includes_and_extends_block )
|
118
102
|
return self
|
119
103
|
end
|
120
104
|
|
@@ -141,8 +125,7 @@ module ModuleCluster::Define::ClusterCascadesToClass
|
|
141
125
|
##############################################################
|
142
126
|
|
143
127
|
def extend_cascades_to_class_prepending_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
144
|
-
|
145
|
-
extend_cascades_to_class_prepending_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
128
|
+
cluster_stack.extend_prepends_includes_and_extends( ModuleCluster::Define::ClusterCascadesToClass, __method__, includes_and_extends, runtime_includes_and_extends_block )
|
146
129
|
return self
|
147
130
|
end
|
148
131
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
module ModuleCluster::Define::ClusterCascadesToModule
|
3
3
|
|
4
|
-
include ModuleCluster::
|
4
|
+
include ModuleCluster::CascadeFeatures::ClusterStack
|
5
5
|
|
6
6
|
extend ModuleCluster::ExtendForCascade
|
7
7
|
|
@@ -9,29 +9,16 @@ module ModuleCluster::Define::ClusterCascadesToModule
|
|
9
9
|
# self.should_include_or_extend? #
|
10
10
|
####################################
|
11
11
|
|
12
|
-
def self.should_include_or_extend?(
|
13
|
-
return !
|
12
|
+
def self.should_include_or_extend?( hooked_instance )
|
13
|
+
return hooked_instance.is_a?( Module ) && ! hooked_instance.is_a?( Class )
|
14
14
|
end
|
15
15
|
|
16
16
|
##########################
|
17
17
|
# self.should_cascade? #
|
18
18
|
##########################
|
19
19
|
|
20
|
-
def self.should_cascade?(
|
21
|
-
return !
|
22
|
-
end
|
23
|
-
|
24
|
-
###########################
|
25
|
-
# self.perform_cascades #
|
26
|
-
###########################
|
27
|
-
|
28
|
-
def self.perform_cascades( class_or_module, method, modules )
|
29
|
-
class_or_module.instance_eval do
|
30
|
-
unless is_a?( Class )
|
31
|
-
extend ModuleCluster::Define::ClusterCascadesToModule
|
32
|
-
__send__( method, *modules )
|
33
|
-
end
|
34
|
-
end
|
20
|
+
def self.should_cascade?( hooked_instance )
|
21
|
+
return hooked_instance.is_a?( Module ) && ! hooked_instance.is_a?( Class )
|
35
22
|
end
|
36
23
|
|
37
24
|
#########################################
|
@@ -57,8 +44,7 @@ module ModuleCluster::Define::ClusterCascadesToModule
|
|
57
44
|
#####################################################
|
58
45
|
|
59
46
|
def include_cascades_includes_and_extends_to_module( *includes_and_extends, & runtime_includes_and_extends_block )
|
60
|
-
|
61
|
-
include_cascades_extends_to_module( *includes_and_extends, & runtime_includes_and_extends_block )
|
47
|
+
cluster_stack.include_prepends_includes_and_extends( ModuleCluster::Define::ClusterCascadesToModule, __method__, includes_and_extends, runtime_includes_and_extends_block )
|
62
48
|
return self
|
63
49
|
end
|
64
50
|
|
@@ -85,8 +71,7 @@ module ModuleCluster::Define::ClusterCascadesToModule
|
|
85
71
|
####################################################
|
86
72
|
|
87
73
|
def extend_cascades_includes_and_extends_to_module( *includes_and_extends, & runtime_includes_and_extends_block )
|
88
|
-
|
89
|
-
extend_cascades_extends_to_module( *includes_and_extends, & runtime_includes_and_extends_block )
|
74
|
+
cluster_stack.extend_prepends_includes_and_extends( ModuleCluster::Define::ClusterCascadesToModule, __method__, includes_and_extends, runtime_includes_and_extends_block )
|
90
75
|
return self
|
91
76
|
end
|
92
77
|
|
@@ -113,8 +98,7 @@ module ModuleCluster::Define::ClusterCascadesToModule
|
|
113
98
|
################################################################
|
114
99
|
|
115
100
|
def include_cascades_to_module_prepending_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
116
|
-
|
117
|
-
include_cascades_to_module_prepending_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
101
|
+
cluster_stack.include_prepends_includes_and_extends( ModuleCluster::Define::ClusterCascadesToModule, __method__, includes_and_extends, runtime_includes_and_extends_block )
|
118
102
|
return self
|
119
103
|
end
|
120
104
|
|
@@ -141,8 +125,7 @@ module ModuleCluster::Define::ClusterCascadesToModule
|
|
141
125
|
###############################################################
|
142
126
|
|
143
127
|
def extend_cascades_to_module_prepending_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
144
|
-
|
145
|
-
extend_cascades_to_module_prepending_extends( *includes_and_extends, & runtime_includes_and_extends_block )
|
128
|
+
cluster_stack.extend_prepends_includes_and_extends( ModuleCluster::Define::ClusterCascadesToModule, __method__, includes_and_extends, runtime_includes_and_extends_block )
|
146
129
|
return self
|
147
130
|
end
|
148
131
|
|
@@ -0,0 +1,46 @@
|
|
1
|
+
|
2
|
+
module ModuleCluster::Define::InstanceCluster
|
3
|
+
|
4
|
+
include ModuleCluster::CascadeFeatures::ClusterStack
|
5
|
+
|
6
|
+
extend ModuleCluster::ExtendForCascade
|
7
|
+
|
8
|
+
####################################
|
9
|
+
# self.should_include_or_extend? #
|
10
|
+
####################################
|
11
|
+
|
12
|
+
def self.should_include_or_extend?( hooked_instance )
|
13
|
+
should_include_or_extend = false
|
14
|
+
unless hooked_instance.is_a?( Module )
|
15
|
+
should_include_or_extend = true
|
16
|
+
end
|
17
|
+
return should_include_or_extend
|
18
|
+
end
|
19
|
+
|
20
|
+
##########################
|
21
|
+
# self.should_cascade? #
|
22
|
+
##########################
|
23
|
+
|
24
|
+
def self.should_cascade?( hooked_instance )
|
25
|
+
return false
|
26
|
+
end
|
27
|
+
|
28
|
+
##################################
|
29
|
+
# instance_extend_also_extends #
|
30
|
+
##################################
|
31
|
+
|
32
|
+
def instance_extend_also_extends( *extends, & runtime_extends_block )
|
33
|
+
cluster_stack.instance_extend_extends( ModuleCluster::Define::Cluster, __method__, extends, runtime_extends_block )
|
34
|
+
return self
|
35
|
+
end
|
36
|
+
|
37
|
+
######################################
|
38
|
+
# instance_extend_prepends_extends #
|
39
|
+
######################################
|
40
|
+
|
41
|
+
def instance_extend_prepends_extends( *extends, & runtime_extends_block )
|
42
|
+
cluster_stack.instance_extend_prepends_extends( ModuleCluster::Define::Cluster, __method__, extends, runtime_extends_block )
|
43
|
+
return self
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|