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.
Files changed (64) hide show
  1. data/README.md +146 -1
  2. data/README.rdoc +146 -1
  3. data/lib/module-cluster.rb +54 -12
  4. data/lib/module-cluster/ModuleCluster/Define/Block.rb +3 -0
  5. data/lib/module-cluster/ModuleCluster/Define/Block/Class.rb +16 -4
  6. data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrInstance.rb +63 -0
  7. data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModule.rb +2 -0
  8. data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModuleOrInstance.rb +63 -0
  9. data/lib/module-cluster/ModuleCluster/Define/Block/Instance.rb +32 -0
  10. data/lib/module-cluster/ModuleCluster/Define/Block/Module.rb +16 -4
  11. data/lib/module-cluster/ModuleCluster/Define/Block/ModuleOrInstance.rb +63 -0
  12. data/lib/module-cluster/ModuleCluster/Define/ClassCluster.rb +200 -0
  13. data/lib/module-cluster/ModuleCluster/Define/ClassOrInstanceCluster.rb +127 -0
  14. data/lib/module-cluster/ModuleCluster/Define/Cluster.rb +7 -19
  15. data/lib/module-cluster/ModuleCluster/Define/ClusterCascades.rb +5 -20
  16. data/lib/module-cluster/ModuleCluster/Define/ClusterCascadesToClass.rb +9 -26
  17. data/lib/module-cluster/ModuleCluster/Define/ClusterCascadesToModule.rb +9 -26
  18. data/lib/module-cluster/ModuleCluster/Define/InstanceCluster.rb +46 -0
  19. data/lib/module-cluster/ModuleCluster/Define/ModuleCluster.rb +200 -0
  20. data/lib/module-cluster/ModuleCluster/Define/ModuleOrClassCluster.rb +208 -0
  21. data/lib/module-cluster/ModuleCluster/Define/ModuleOrInstanceCluster.rb +127 -0
  22. data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures.rb +54 -0
  23. data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/ClusterStack.rb +44 -0
  24. data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/PerformCascades.rb +209 -0
  25. data/lib/module-cluster/{ModuleCluster → _private_/ModuleCluster}/ClusterStack.rb +0 -2
  26. data/lib/module-cluster/{ModuleCluster → _private_/ModuleCluster}/ClusterStack/Block.rb +1 -2
  27. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Class.rb +36 -0
  28. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Instance.rb +20 -0
  29. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Module.rb +36 -0
  30. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Set.rb +2 -0
  31. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Extends.rb +108 -0
  32. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Includes.rb +84 -0
  33. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/PrependsExtends.rb +108 -0
  34. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/PrependsIncludes.rb +84 -0
  35. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Set.rb +7 -0
  36. data/lib/module-cluster/{ModuleCluster → _private_/ModuleCluster}/ExtendForCascade.rb +0 -0
  37. data/spec/ModuleCluster/Define/Block/ClassOrInstance_spec.rb +230 -0
  38. data/spec/ModuleCluster/Define/Block/ClassOrModuleOrInstance_spec.rb +238 -0
  39. data/spec/ModuleCluster/Define/Block/ClassOrModule_spec.rb +231 -0
  40. data/spec/ModuleCluster/Define/Block/Class_spec.rb +224 -0
  41. data/spec/ModuleCluster/Define/Block/Instance_spec.rb +78 -0
  42. data/spec/ModuleCluster/Define/Block/ModuleOrInstance_spec.rb +54 -0
  43. data/spec/ModuleCluster/Define/Block/Module_spec.rb +224 -0
  44. data/spec/ModuleCluster/Define/Block_spec.rb +18 -0
  45. data/spec/ModuleCluster/Define/ClassCluster_spec.rb +728 -0
  46. data/spec/ModuleCluster/Define/ClassOrInstanceCluster_spec.rb +576 -0
  47. data/spec/ModuleCluster/Define/ClusterCascadesToClass_spec.rb +298 -60
  48. data/spec/ModuleCluster/Define/ClusterCascadesToModule_spec.rb +307 -61
  49. data/spec/ModuleCluster/Define/ClusterCascades_spec.rb +335 -36
  50. data/spec/ModuleCluster/Define/Cluster_spec.rb +447 -14
  51. data/spec/ModuleCluster/Define/InstanceCluster_spec.rb +102 -0
  52. data/spec/ModuleCluster/Define/ModuleCluster_spec.rb +728 -0
  53. data/spec/ModuleCluster/Define/ModuleOrClassCluster_spec.rb +728 -0
  54. data/spec/ModuleCluster/Define/ModuleOrInstanceCluster_spec.rb +576 -0
  55. data/spec/_private_/ModuleCluster/CascadeFeatures/PerformCascades_spec.rb +278 -0
  56. metadata +42 -13
  57. data/lib/module-cluster/ModuleCluster/CascadeFeatures.rb +0 -197
  58. data/lib/module-cluster/ModuleCluster/ClusterStack/Block/Class.rb +0 -36
  59. data/lib/module-cluster/ModuleCluster/ClusterStack/Block/Module.rb +0 -36
  60. data/lib/module-cluster/ModuleCluster/ClusterStack/Extends.rb +0 -29
  61. data/lib/module-cluster/ModuleCluster/ClusterStack/Includes.rb +0 -28
  62. data/lib/module-cluster/ModuleCluster/ClusterStack/PrependsExtends.rb +0 -28
  63. data/lib/module-cluster/ModuleCluster/ClusterStack/PrependsIncludes.rb +0 -28
  64. data/lib/module-cluster/ModuleCluster/Define/ClusterStack.rb +0 -26
@@ -2,5 +2,8 @@
2
2
  module ModuleCluster::Define::Block
3
3
 
4
4
  include ModuleCluster::Define::Block::ClassOrModule
5
+ include ModuleCluster::Define::Block::ClassOrInstance
6
+ include ModuleCluster::Define::Block::ClassOrModuleOrInstance
7
+ include ModuleCluster::Define::Block::ModuleOrInstance
5
8
 
6
9
  end
@@ -1,12 +1,24 @@
1
1
 
2
2
  module ModuleCluster::Define::Block::Class
3
+
4
+ include ModuleCluster::CascadeFeatures::ClusterStack
5
+
6
+ extend ModuleCluster::ExtendForCascade
7
+
8
+ ############################
9
+ # self.should_run_block? #
10
+ ############################
3
11
 
12
+ def self.should_run_block?( hooked_instance )
13
+ return hooked_instance.is_a?( Class )
14
+ end
15
+
4
16
  ###################
5
17
  # class_include #
6
18
  ###################
7
19
 
8
20
  def class_include( & runtime_block )
9
- cluster_stack.class_include( runtime_block )
21
+ cluster_stack.class_include( ModuleCluster::Define::Block::Class, runtime_block )
10
22
  end
11
23
 
12
24
  ##################
@@ -14,7 +26,7 @@ module ModuleCluster::Define::Block::Class
14
26
  ##################
15
27
 
16
28
  def class_extend( & runtime_block )
17
- cluster_stack.class_extend( runtime_block )
29
+ cluster_stack.class_extend( ModuleCluster::Define::Block::Class, runtime_block )
18
30
  end
19
31
 
20
32
  #############################
@@ -31,7 +43,7 @@ module ModuleCluster::Define::Block::Class
31
43
  ###########################
32
44
 
33
45
  def prepend_class_include( & runtime_block )
34
- cluster_stack.prepend_class_include( runtime_block )
46
+ cluster_stack.prepend_class_include( ModuleCluster::Define::Block::Class, runtime_block )
35
47
  end
36
48
 
37
49
  ##########################
@@ -39,7 +51,7 @@ module ModuleCluster::Define::Block::Class
39
51
  ##########################
40
52
 
41
53
  def prepend_class_extend( & runtime_block )
42
- cluster_stack.prepend_class_extend( runtime_block )
54
+ cluster_stack.prepend_class_extend( ModuleCluster::Define::Block::Class, runtime_block )
43
55
  end
44
56
 
45
57
  #####################################
@@ -0,0 +1,63 @@
1
+
2
+ module ModuleCluster::Define::Block::ClassOrInstance
3
+
4
+ include ModuleCluster::Define::Block::Class
5
+ include ModuleCluster::Define::Block::Instance
6
+
7
+ extend ModuleCluster::ExtendForCascade
8
+
9
+ ##############################
10
+ # class_or_instance_extend #
11
+ ##############################
12
+
13
+ def class_or_instance_extend( & runtime_block )
14
+ class_extend( & runtime_block )
15
+ instance_extend( & runtime_block )
16
+ end
17
+
18
+ ######################################
19
+ # class_include_or_instance_extend #
20
+ ######################################
21
+
22
+ def class_include_or_instance_extend( & runtime_block )
23
+ class_include( & runtime_block )
24
+ instance_extend( & runtime_block )
25
+ end
26
+
27
+ ################################################
28
+ # class_include_or_extend_or_instance_extend #
29
+ ################################################
30
+
31
+ def class_include_or_extend_or_instance_extend( & runtime_block )
32
+ class_include_or_extend( & runtime_block )
33
+ instance_extend( & runtime_block )
34
+ end
35
+
36
+ ######################################
37
+ # prepend_class_or_instance_extend #
38
+ ######################################
39
+
40
+ def prepend_class_or_instance_extend( & runtime_block )
41
+ prepend_class_extend( & runtime_block )
42
+ prepend_instance_extend( & runtime_block )
43
+ end
44
+
45
+ ##############################################
46
+ # prepend_class_include_or_instance_extend #
47
+ ##############################################
48
+
49
+ def prepend_class_include_or_instance_extend( & runtime_block )
50
+ prepend_class_include( & runtime_block )
51
+ prepend_instance_extend( & runtime_block )
52
+ end
53
+
54
+ ########################################################
55
+ # prepend_class_include_or_extend_or_instance_extend #
56
+ ########################################################
57
+
58
+ 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 )
61
+ end
62
+
63
+ end
@@ -4,6 +4,8 @@ module ModuleCluster::Define::Block::ClassOrModule
4
4
  include ModuleCluster::Define::Block::Class
5
5
  include ModuleCluster::Define::Block::Module
6
6
 
7
+ extend ModuleCluster::ExtendForCascade
8
+
7
9
  #############################
8
10
  # class_or_module_include #
9
11
  #############################
@@ -0,0 +1,63 @@
1
+
2
+ module ModuleCluster::Define::Block::ClassOrModuleOrInstance
3
+
4
+ include ModuleCluster::Define::Block::ClassOrModule
5
+ include ModuleCluster::Define::Block::Instance
6
+
7
+ extend ModuleCluster::ExtendForCascade
8
+
9
+ ########################################
10
+ # class_or_module_or_instance_extend #
11
+ ########################################
12
+
13
+ def class_or_module_or_instance_extend( & runtime_block )
14
+ class_or_module_extend( & runtime_block )
15
+ instance_extend( & runtime_block )
16
+ end
17
+
18
+ ################################################
19
+ # class_or_module_include_or_instance_extend #
20
+ ################################################
21
+
22
+ def class_or_module_include_or_instance_extend( & runtime_block )
23
+ class_or_module_include( & runtime_block )
24
+ instance_extend( & runtime_block )
25
+ end
26
+
27
+ ##########################################################
28
+ # class_or_module_include_or_extend_or_instance_extend #
29
+ ##########################################################
30
+
31
+ def class_or_module_include_or_extend_or_instance_extend( & runtime_block )
32
+ class_or_module_include_or_extend( & runtime_block )
33
+ instance_extend( & runtime_block )
34
+ end
35
+
36
+ ################################################
37
+ # prepend_class_or_module_or_instance_extend #
38
+ ################################################
39
+
40
+ def prepend_class_or_module_or_instance_extend( & runtime_block )
41
+ prepend_class_or_module_extend( & runtime_block )
42
+ prepend_instance_extend( & runtime_block )
43
+ end
44
+
45
+ ########################################################
46
+ # prepend_class_or_module_include_or_instance_extend #
47
+ ########################################################
48
+
49
+ def prepend_class_or_module_include_or_instance_extend( & runtime_block )
50
+ prepend_class_or_module_include( & runtime_block )
51
+ prepend_instance_extend( & runtime_block )
52
+ end
53
+
54
+ ##################################################################
55
+ # prepend_class_or_module_include_or_extend_or_instance_extend #
56
+ ##################################################################
57
+
58
+ def prepend_class_or_module_include_or_extend_or_instance_extend( & runtime_block )
59
+ prepend_class_or_module_include_or_extend( & runtime_block )
60
+ prepend_instance_extend( & runtime_block )
61
+ end
62
+
63
+ end
@@ -0,0 +1,32 @@
1
+
2
+ module ModuleCluster::Define::Block::Instance
3
+
4
+ include ModuleCluster::CascadeFeatures::ClusterStack
5
+
6
+ extend ModuleCluster::ExtendForCascade
7
+
8
+ ############################
9
+ # self.should_run_block? #
10
+ ############################
11
+
12
+ def self.should_run_block?( hooked_instance )
13
+ return ! hooked_instance.is_a?( Module )
14
+ end
15
+
16
+ #####################
17
+ # instance_extend #
18
+ #####################
19
+
20
+ def instance_extend( & runtime_block )
21
+ cluster_stack.instance_extend( ModuleCluster::Define::Block::Instance, runtime_block )
22
+ end
23
+
24
+ #############################
25
+ # prepend_instance_extend #
26
+ #############################
27
+
28
+ def prepend_instance_extend( & runtime_block )
29
+ cluster_stack.prepend_instance_extend( ModuleCluster::Define::Block::Instance, runtime_block )
30
+ end
31
+
32
+ end
@@ -1,12 +1,24 @@
1
1
 
2
2
  module ModuleCluster::Define::Block::Module
3
3
 
4
+ include ModuleCluster::CascadeFeatures::ClusterStack
5
+
6
+ extend ModuleCluster::ExtendForCascade
7
+
8
+ ############################
9
+ # self.should_run_block? #
10
+ ############################
11
+
12
+ def self.should_run_block?( hooked_instance )
13
+ return hooked_instance.is_a?( Module ) && ! hooked_instance.is_a?( Class )
14
+ end
15
+
4
16
  ####################
5
17
  # module_include #
6
18
  ####################
7
19
 
8
20
  def module_include( & runtime_block )
9
- cluster_stack.module_include( runtime_block )
21
+ cluster_stack.module_include( ModuleCluster::Define::Block::Module, runtime_block )
10
22
  end
11
23
 
12
24
  ###################
@@ -14,7 +26,7 @@ module ModuleCluster::Define::Block::Module
14
26
  ###################
15
27
 
16
28
  def module_extend( & runtime_block )
17
- cluster_stack.module_extend( runtime_block )
29
+ cluster_stack.module_extend( ModuleCluster::Define::Block::Module, runtime_block )
18
30
  end
19
31
 
20
32
  ##############################
@@ -31,7 +43,7 @@ module ModuleCluster::Define::Block::Module
31
43
  ############################
32
44
 
33
45
  def prepend_module_include( & runtime_block )
34
- cluster_stack.prepend_module_include( runtime_block )
46
+ cluster_stack.prepend_module_include( ModuleCluster::Define::Block::Module, runtime_block )
35
47
  end
36
48
 
37
49
  ###########################
@@ -39,7 +51,7 @@ module ModuleCluster::Define::Block::Module
39
51
  ###########################
40
52
 
41
53
  def prepend_module_extend( & runtime_block )
42
- cluster_stack.prepend_module_extend( runtime_block )
54
+ cluster_stack.prepend_module_extend( ModuleCluster::Define::Block::Module, runtime_block )
43
55
  end
44
56
 
45
57
  ######################################
@@ -0,0 +1,63 @@
1
+
2
+ module ModuleCluster::Define::Block::ModuleOrInstance
3
+
4
+ include ModuleCluster::Define::Block::Module
5
+ include ModuleCluster::Define::Block::Instance
6
+
7
+ extend ModuleCluster::ExtendForCascade
8
+
9
+ ###############################
10
+ # module_or_instance_extend #
11
+ ###############################
12
+
13
+ def module_or_instance_extend( & runtime_block )
14
+ module_extend( & runtime_block )
15
+ instance_extend( & runtime_block )
16
+ end
17
+
18
+ #######################################
19
+ # module_include_or_instance_extend #
20
+ #######################################
21
+
22
+ def module_include_or_instance_extend( & runtime_block )
23
+ module_include( & runtime_block )
24
+ instance_extend( & runtime_block )
25
+ end
26
+
27
+ #################################################
28
+ # module_include_or_extend_or_instance_extend #
29
+ #################################################
30
+
31
+ def module_include_or_extend_or_instance_extend( & runtime_block )
32
+ module_include_or_extend( & runtime_block )
33
+ instance_extend( & runtime_block )
34
+ end
35
+
36
+ #######################################
37
+ # prepend_module_or_instance_extend #
38
+ #######################################
39
+
40
+ def prepend_module_or_instance_extend( & runtime_block )
41
+ prepend_module_extend( & runtime_block )
42
+ prepend_instance_extend( & runtime_block )
43
+ end
44
+
45
+ ###############################################
46
+ # prepend_module_include_or_instance_extend #
47
+ ###############################################
48
+
49
+ def prepend_module_include_or_instance_extend( & runtime_block )
50
+ prepend_module_include( & runtime_block )
51
+ prepend_instance_extend( & runtime_block )
52
+ end
53
+
54
+ #########################################################
55
+ # prepend_module_include_or_extend_or_instance_extend #
56
+ #########################################################
57
+
58
+ def prepend_module_include_or_extend_or_instance_extend( & runtime_block )
59
+ prepend_module_include_or_extend( & runtime_block )
60
+ prepend_instance_extend( & runtime_block )
61
+ end
62
+
63
+ end
@@ -0,0 +1,200 @@
1
+
2
+ module ModuleCluster::Define::ClassCluster
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
+ if hooked_instance.is_a?( Class )
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?( class_or_module )
25
+ return false
26
+ end
27
+
28
+ #################################
29
+ # class_include_also_includes #
30
+ #################################
31
+
32
+ def class_include_also_includes( *includes, & runtime_includes_block )
33
+ cluster_stack.class_include_includes( ModuleCluster::Define::Cluster, __method__, includes, runtime_includes_block )
34
+ return self
35
+ end
36
+
37
+ ################################
38
+ # class_include_also_extends #
39
+ ################################
40
+
41
+ def class_include_also_extends( *extends, & runtime_extends_block )
42
+ cluster_stack.class_include_extends( ModuleCluster::Define::Cluster, __method__, extends, runtime_extends_block )
43
+ return self
44
+ end
45
+
46
+ #############################################
47
+ # class_include_also_includes_and_extends #
48
+ #############################################
49
+
50
+ def class_include_also_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
51
+ class_include_also_includes( *includes_and_extends, & runtime_includes_and_extends_block )
52
+ class_include_also_extends( *includes_and_extends, & runtime_includes_and_extends_block )
53
+ return self
54
+ end
55
+
56
+ ################################
57
+ # class_extend_also_includes #
58
+ ################################
59
+
60
+ def class_extend_also_includes( *includes, & runtime_includes_block )
61
+ cluster_stack.class_extend_includes( ModuleCluster::Define::Cluster, __method__, includes, runtime_includes_block )
62
+ return self
63
+ end
64
+
65
+ ###############################
66
+ # class_extend_also_extends #
67
+ ###############################
68
+
69
+ def class_extend_also_extends( *extends, & runtime_extends_block )
70
+ cluster_stack.class_extend_extends( ModuleCluster::Define::Cluster, __method__, extends, runtime_extends_block )
71
+ return self
72
+ end
73
+
74
+ ############################################
75
+ # class_extend_also_includes_and_extends #
76
+ ############################################
77
+
78
+ def class_extend_also_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
79
+ class_extend_also_includes( *includes_and_extends, & runtime_includes_and_extends_block )
80
+ class_extend_also_extends( *includes_and_extends, & runtime_includes_and_extends_block )
81
+ return self
82
+ end
83
+
84
+ #####################################
85
+ # class_include_prepends_includes #
86
+ #####################################
87
+
88
+ def class_include_prepends_includes( *includes, & runtime_includes_block )
89
+ cluster_stack.class_include_prepends_includes( ModuleCluster::Define::Cluster, __method__, includes, runtime_includes_block )
90
+ return self
91
+ end
92
+
93
+ ####################################
94
+ # class_include_prepends_extends #
95
+ ####################################
96
+
97
+ def class_include_prepends_extends( *extends, & runtime_extends_block )
98
+ cluster_stack.class_include_prepends_extends( ModuleCluster::Define::Cluster, __method__, extends, runtime_extends_block )
99
+ return self
100
+ end
101
+
102
+ #################################################
103
+ # class_include_prepends_includes_and_extends #
104
+ #################################################
105
+
106
+ def class_include_prepends_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
107
+ class_include_prepends_includes( *includes_and_extends, & runtime_includes_and_extends_block )
108
+ class_include_prepends_extends( *includes_and_extends, & runtime_includes_and_extends_block )
109
+ return self
110
+ end
111
+
112
+ ####################################
113
+ # class_extend_prepends_includes #
114
+ ####################################
115
+
116
+ def class_extend_prepends_includes( *includes, & runtime_includes_block )
117
+ cluster_stack.class_extend_prepends_includes( ModuleCluster::Define::Cluster, __method__, includes, runtime_includes_block )
118
+ return self
119
+ end
120
+
121
+ ###################################
122
+ # class_extend_prepends_extends #
123
+ ###################################
124
+
125
+ def class_extend_prepends_extends( *extends, & runtime_extends_block )
126
+ cluster_stack.class_extend_prepends_extends( ModuleCluster::Define::Cluster, __method__, extends, runtime_extends_block )
127
+ return self
128
+ end
129
+
130
+ ################################################
131
+ # class_extend_prepends_includes_and_extends #
132
+ ################################################
133
+
134
+ def class_extend_prepends_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
135
+ class_extend_prepends_includes( *includes_and_extends, & runtime_includes_and_extends_block )
136
+ class_extend_prepends_extends( *includes_and_extends, & runtime_includes_and_extends_block )
137
+ return self
138
+ end
139
+
140
+ ###########################################
141
+ # class_include_or_extend_also_includes #
142
+ ###########################################
143
+
144
+ def class_include_or_extend_also_includes( *includes, & runtime_includes_block )
145
+ class_include_also_includes( *includes, & runtime_includes_block )
146
+ class_extend_also_includes( *includes, & runtime_includes_block )
147
+ return self
148
+ end
149
+
150
+ ##########################################
151
+ # class_include_or_extend_also_extends #
152
+ ##########################################
153
+
154
+ def class_include_or_extend_also_extends( *extends, & runtime_extends_block )
155
+ class_include_also_extends( *extends, & runtime_extends_block )
156
+ class_extend_also_extends( *extends, & runtime_extends_block )
157
+ return self
158
+ end
159
+
160
+ #######################################################
161
+ # class_include_or_extend_also_includes_and_extends #
162
+ #######################################################
163
+
164
+ def class_include_or_extend_also_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
165
+ class_include_prepends_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
166
+ class_extend_prepends_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
167
+ return self
168
+ end
169
+
170
+ ###############################################
171
+ # class_include_or_extend_prepends_includes #
172
+ ###############################################
173
+
174
+ def class_include_or_extend_prepends_includes( *includes, & runtime_includes_block )
175
+ class_include_prepends_includes( *includes, & runtime_includes_block )
176
+ class_extend_prepends_includes( *includes, & runtime_includes_block )
177
+ return self
178
+ end
179
+
180
+ ##############################################
181
+ # class_include_or_extend_prepends_extends #
182
+ ##############################################
183
+
184
+ def class_include_or_extend_prepends_extends( *extends, & runtime_extends_block )
185
+ class_include_prepends_extends( *extends, & runtime_extends_block )
186
+ class_extend_prepends_extends( *extends, & runtime_extends_block )
187
+ return self
188
+ end
189
+
190
+ ###########################################################
191
+ # class_include_or_extend_prepends_includes_and_extends #
192
+ ###########################################################
193
+
194
+ def class_include_or_extend_prepends_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
195
+ class_include_prepends_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
196
+ class_extend_prepends_includes_and_extends( *includes_and_extends, & runtime_includes_and_extends_block )
197
+ return self
198
+ end
199
+
200
+ end