module-cluster 1.3.7 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
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