module-cluster 1.4.8 → 2.0.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 (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,78 +0,0 @@
1
-
2
- require_relative '../../../../lib/module-cluster.rb'
3
-
4
- describe ::ModuleCluster::Define::Block::Instance do
5
-
6
- #####################
7
- # instance_extend #
8
- #####################
9
-
10
- it 'can run a block on instance extend' do
11
- module ::ModuleCluster::Define::Block::Instance::Mock01
12
- extend ::ModuleCluster::Define::Block::Instance
13
- block_ran = false
14
- instance_extend do
15
- block_ran = true
16
- self.should == ::ModuleCluster::Define::Block::Instance::Mock01
17
- end
18
- respond_to?( :extended ).should == true
19
- module ModuleProof
20
- include ::ModuleCluster::Define::Block::Instance::Mock01
21
- end
22
- block_ran.should == false
23
- module ModuleProof2
24
- extend ::ModuleCluster::Define::Block::Instance::Mock01
25
- end
26
- block_ran.should == false
27
- class ClassProof
28
- include ::ModuleCluster::Define::Block::Instance::Mock01
29
- end
30
- block_ran.should == false
31
- class ClassProof2
32
- extend ::ModuleCluster::Define::Block::Instance::Mock01
33
- end
34
- block_ran.should == false
35
- Object.new.instance_eval do
36
- extend ::ModuleCluster::Define::Block::Instance::Mock01
37
- end
38
- block_ran.should == true
39
- end
40
- end
41
-
42
- #############################
43
- # prepend_instance_extend #
44
- #############################
45
-
46
- it 'can run a block before instance extend' do
47
- module ::ModuleCluster::Define::Block::Instance::Mock02
48
- extend ::ModuleCluster::Define::Block::Instance
49
- block_ran = false
50
- prepend_instance_extend do
51
- block_ran = true
52
- self.should == ::ModuleCluster::Define::Block::Instance::Mock02
53
- end
54
- respond_to?( :extended ).should == true
55
- module ModuleProof
56
- include ::ModuleCluster::Define::Block::Instance::Mock02
57
- end
58
- block_ran.should == false
59
- module ModuleProof2
60
- extend ::ModuleCluster::Define::Block::Instance::Mock02
61
- end
62
- block_ran.should == false
63
- class ClassProof
64
- include ::ModuleCluster::Define::Block::Instance::Mock02
65
- end
66
- block_ran.should == false
67
- class ClassProof2
68
- extend ::ModuleCluster::Define::Block::Instance::Mock02
69
- end
70
- block_ran.should == false
71
- Object.new.instance_eval do
72
- extend ::ModuleCluster::Define::Block::Instance::Mock02
73
- end
74
- block_ran.should == true
75
- end
76
- end
77
-
78
- end
@@ -1,54 +0,0 @@
1
-
2
- require_relative '../../../../lib/module-cluster.rb'
3
-
4
- describe ::ModuleCluster::Define::Block::ModuleOrInstance do
5
-
6
- ###############################
7
- # module_or_instance_extend #
8
- ###############################
9
-
10
- it '' do
11
-
12
- end
13
-
14
- #######################################
15
- # module_include_or_instance_extend #
16
- #######################################
17
-
18
- it '' do
19
-
20
- end
21
-
22
- #################################################
23
- # module_include_or_extend_or_instance_extend #
24
- #################################################
25
-
26
- it '' do
27
-
28
- end
29
-
30
- #######################################
31
- # prepend_module_or_instance_extend #
32
- #######################################
33
-
34
- it '' do
35
-
36
- end
37
-
38
- ###############################################
39
- # prepend_module_include_or_instance_extend #
40
- ###############################################
41
-
42
- it '' do
43
-
44
- end
45
-
46
- #########################################################
47
- # prepend_module_include_or_extend_or_instance_extend #
48
- #########################################################
49
-
50
- it '' do
51
-
52
- end
53
-
54
- end
@@ -1,51 +0,0 @@
1
-
2
- require_relative '../../../../lib/module-cluster.rb'
3
-
4
- describe ::ModuleCluster::Define::Block::ModuleOrSubclass do
5
-
6
- ################################
7
- # module_include_or_subclass #
8
- ################################
9
-
10
- it 'can run a block on class or module extend' do
11
- module ::ModuleCluster::Define::Block::ModuleOrSubclass::Mock01
12
- extend ::ModuleCluster::Define::Block::ModuleOrSubclass
13
- block_ran = false
14
- module_include_or_subclass do
15
- block_ran = true
16
- end
17
- respond_to?( :extended ).should == true
18
- module ModuleProof
19
- include ::ModuleCluster::Define::Block::ModuleOrSubclass::Mock01
20
- end
21
- block_ran.should == true
22
- block_ran = false
23
- module ModuleProof2
24
- extend ::ModuleCluster::Define::Block::ModuleOrSubclass::Mock01
25
- end
26
- block_ran.should == false
27
- block_ran = false
28
- class ClassProof
29
- include ::ModuleCluster::Define::Block::ModuleOrSubclass::Mock01
30
- end
31
- block_ran.should == false
32
- class ClassProof2
33
- extend ::ModuleCluster::Define::Block::ModuleOrSubclass::Mock01
34
- end
35
- block_ran.should == false
36
- block_ran = false
37
- Object.new.instance_eval do
38
- extend ::ModuleCluster::Define::Block::ModuleOrSubclass::Mock01
39
- end
40
- block_ran.should == false
41
- class SubClassProof < ClassProof
42
- end
43
- block_ran.should == true
44
- block_ran = false
45
- class SubSubClassProof < SubClassProof
46
- end
47
- block_ran.should == true
48
- end
49
- end
50
-
51
- end
@@ -1,230 +0,0 @@
1
-
2
- require_relative '../../../../lib/module-cluster.rb'
3
-
4
- describe ::ModuleCluster::Define::Block::Module do
5
-
6
- ####################
7
- # module_include #
8
- ####################
9
-
10
- it 'can run a block on module include' do
11
- module ::ModuleCluster::Define::Block::Module::Mock01
12
- extend ::ModuleCluster::Define::Block::Module
13
- block_ran = false
14
- module_include do
15
- block_ran = true
16
- self.should == ::ModuleCluster::Define::Block::Module::Mock01
17
- end
18
- cluster_stack.include_hooks.count.should == 1
19
- respond_to?( :included ).should == true
20
- class ClassProof
21
- extend ::ModuleCluster::Define::Block::Module::Mock01
22
- respond_to?( :cluster_stack ).should == false
23
- end
24
- block_ran.should == false
25
- class ClassProof2
26
- include ::ModuleCluster::Define::Block::Module::Mock01
27
- respond_to?( :cluster_stack ).should == false
28
- end
29
- block_ran.should == false
30
- Object.new.instance_eval do
31
- extend ::ModuleCluster::Define::Block::Module::Mock01
32
- respond_to?( :cluster_stack ).should == false
33
- end
34
- block_ran.should == false
35
- module ModuleProof
36
- extend ::ModuleCluster::Define::Block::Module::Mock01
37
- respond_to?( :cluster_stack ).should == false
38
- end
39
- block_ran.should == false
40
- module ModuleProof2
41
- include ::ModuleCluster::Define::Block::Module::Mock01
42
- respond_to?( :cluster_stack ).should == false
43
- end
44
- block_ran.should == true
45
- end
46
- end
47
-
48
- ###################
49
- # module_extend #
50
- ###################
51
-
52
- it 'can run a block on module extend' do
53
- module ::ModuleCluster::Define::Block::Module::Mock02
54
- extend ::ModuleCluster::Define::Block::Module
55
- block_ran = false
56
- module_extend do
57
- block_ran = true
58
- self.should == ::ModuleCluster::Define::Block::Module::Mock02
59
- end
60
- respond_to?( :extended ).should == true
61
- class ClassProof
62
- include ::ModuleCluster::Define::Block::Module::Mock02
63
- end
64
- block_ran.should == false
65
- class ClassProof2
66
- extend ::ModuleCluster::Define::Block::Module::Mock02
67
- end
68
- block_ran.should == false
69
- Object.new.instance_eval do
70
- extend ::ModuleCluster::Define::Block::Module::Mock02
71
- end
72
- block_ran.should == false
73
- module ModuleProof
74
- include ::ModuleCluster::Define::Block::Module::Mock02
75
- end
76
- block_ran.should == false
77
- module ModuleProof2
78
- extend ::ModuleCluster::Define::Block::Module::Mock02
79
- end
80
- block_ran.should == true
81
- end
82
- end
83
-
84
- ##############################
85
- # module_include_or_extend #
86
- ##############################
87
-
88
- it 'can run a block on module include or extend' do
89
- module ::ModuleCluster::Define::Block::Module::Mock03
90
- extend ::ModuleCluster::Define::Block::Module
91
- block_ran = false
92
- module_include_or_extend do
93
- block_ran = true
94
- self.should == ::ModuleCluster::Define::Block::Module::Mock03
95
- end
96
- respond_to?( :extended ).should == true
97
- class ClassProof
98
- include ::ModuleCluster::Define::Block::Module::Mock03
99
- end
100
- block_ran.should == false
101
- class ClassProof2
102
- extend ::ModuleCluster::Define::Block::Module::Mock03
103
- end
104
- block_ran.should == false
105
- Object.new.instance_eval do
106
- extend ::ModuleCluster::Define::Block::Module::Mock03
107
- end
108
- block_ran.should == false
109
- module ModuleProof
110
- include ::ModuleCluster::Define::Block::Module::Mock03
111
- end
112
- block_ran.should == true
113
- block_ran = false
114
- module ModuleProof2
115
- extend ::ModuleCluster::Define::Block::Module::Mock03
116
- end
117
- block_ran.should == true
118
- end
119
- end
120
-
121
- ############################
122
- # prepend_module_include #
123
- ############################
124
-
125
- it 'can run a block before module include' do
126
- module ::ModuleCluster::Define::Block::Module::Mock04
127
- extend ::ModuleCluster::Define::Block::Module
128
- block_ran = false
129
- prepend_module_include do
130
- block_ran = true
131
- self.should == ::ModuleCluster::Define::Block::Module::Mock04
132
- end
133
- respond_to?( :included ).should == true
134
- class ClassProof
135
- extend ::ModuleCluster::Define::Block::Module::Mock04
136
- end
137
- block_ran.should == false
138
- class ClassProof2
139
- include ::ModuleCluster::Define::Block::Module::Mock04
140
- end
141
- block_ran.should == false
142
- Object.new.instance_eval do
143
- extend ::ModuleCluster::Define::Block::Module::Mock04
144
- end
145
- block_ran.should == false
146
- module ModuleProof
147
- extend ::ModuleCluster::Define::Block::Module::Mock04
148
- end
149
- block_ran.should == false
150
- module ModuleProof2
151
- include ::ModuleCluster::Define::Block::Module::Mock04
152
- end
153
- block_ran.should == true
154
- end
155
- end
156
-
157
- ###########################
158
- # prepend_module_extend #
159
- ###########################
160
-
161
- it 'can run a block before module extend' do
162
- module ::ModuleCluster::Define::Block::Module::Mock05
163
- extend ::ModuleCluster::Define::Block::Module
164
- block_ran = false
165
- prepend_module_extend do
166
- block_ran = true
167
- self.should == ::ModuleCluster::Define::Block::Module::Mock05
168
- end
169
- respond_to?( :extended ).should == true
170
- class ClassProof
171
- include ::ModuleCluster::Define::Block::Module::Mock05
172
- end
173
- block_ran.should == false
174
- class ClassProof2
175
- extend ::ModuleCluster::Define::Block::Module::Mock05
176
- end
177
- block_ran.should == false
178
- Object.new.instance_eval do
179
- extend ::ModuleCluster::Define::Block::Module::Mock05
180
- end
181
- block_ran.should == false
182
- module ModuleProof
183
- include ::ModuleCluster::Define::Block::Module::Mock05
184
- end
185
- block_ran.should == false
186
- module ModuleProof2
187
- extend ::ModuleCluster::Define::Block::Module::Mock05
188
- end
189
- block_ran.should == true
190
- end
191
- end
192
-
193
- ######################################
194
- # prepend_module_include_or_extend #
195
- ######################################
196
-
197
- it 'can run a block before module include or extend' do
198
- module ::ModuleCluster::Define::Block::Module::Mock06
199
- extend ::ModuleCluster::Define::Block::Module
200
- block_ran = false
201
- prepend_module_include_or_extend do
202
- block_ran = true
203
- self.should == ::ModuleCluster::Define::Block::Module::Mock06
204
- end
205
- respond_to?( :extended ).should == true
206
- class ClassProof
207
- include ::ModuleCluster::Define::Block::Module::Mock06
208
- end
209
- block_ran.should == false
210
- class ClassProof2
211
- extend ::ModuleCluster::Define::Block::Module::Mock06
212
- end
213
- block_ran.should == false
214
- Object.new.instance_eval do
215
- extend ::ModuleCluster::Define::Block::Module::Mock06
216
- end
217
- block_ran.should == false
218
- module ModuleProof
219
- include ::ModuleCluster::Define::Block::Module::Mock06
220
- end
221
- block_ran.should == true
222
- block_ran = false
223
- module ModuleProof2
224
- extend ::ModuleCluster::Define::Block::Module::Mock06
225
- end
226
- block_ran.should == true
227
- end
228
- end
229
-
230
- end
@@ -1,73 +0,0 @@
1
-
2
- require_relative '../../../../lib/module-cluster.rb'
3
-
4
- describe ::ModuleCluster::Define::Block::Subclass do
5
-
6
- ##############
7
- # subclass #
8
- ##############
9
-
10
- it 'can run a block when a class is subclassed' do
11
-
12
- class ::ModuleCluster::Define::Block::Subclass::Mock01
13
- extend ::ModuleCluster::Define::Block::Subclass
14
- block_ran = false
15
- subclass do |subclass_instance|
16
- subclass_instance.ancestors[ 1 ].should == self
17
- self.ancestors.include?( ::ModuleCluster::Define::Block::Subclass::Mock01 ).should == true
18
- subclass_instance.ancestors.include?( ::ModuleCluster::Define::Block::Subclass::Mock01 ).should == true
19
- block_ran = true
20
- end
21
- respond_to?( :inherited ).should == true
22
- respond_to?( :included ).should == false
23
- respond_to?( :extended ).should == false
24
- respond_to?( :append_features ).should == false
25
- respond_to?( :extend_object ).should == false
26
- class ModuleProof < ::ModuleCluster::Define::Block::Subclass::Mock01
27
- end
28
- block_ran.should == true
29
- block_ran = false
30
- class ModuleProof2 < ModuleProof
31
- end
32
- block_ran.should == true
33
- end
34
- end
35
-
36
- it 'can run a block when a class is subclassed after a module has defined subclassing' do
37
-
38
- module ::ModuleCluster::Define::Block::Subclass::Mock02
39
- extend ::ModuleCluster::Define::Block::Subclass
40
- block_ran = false
41
- subclass do |subclass_instance|
42
- subclass_instance.ancestors[ 1 ].should == self
43
- self.ancestors.include?( ::ModuleCluster::Define::Block::Subclass::Mock02 ).should == true
44
- subclass_instance.ancestors.include?( ::ModuleCluster::Define::Block::Subclass::Mock02 ).should == true
45
- block_ran = true
46
- end
47
- respond_to?( :included ).should == true
48
- respond_to?( :extended ).should == true
49
- respond_to?( :append_features ).should == true
50
- respond_to?( :extend_object ).should == true
51
- respond_to?( :inherited ).should == false
52
- class ClassProof
53
- include ::ModuleCluster::Define::Block::Subclass::Mock02
54
- respond_to?( :inherited ).should == true
55
- respond_to?( :included ).should == false
56
- respond_to?( :extended ).should == false
57
- respond_to?( :append_features ).should == false
58
- respond_to?( :extend_object ).should == false
59
- end
60
- block_ran.should == false
61
- block_ran = false
62
- class ClassProof2 < ClassProof
63
- end
64
- block_ran.should == true
65
- block_ran = false
66
- class ClassProof3 < ClassProof2
67
- end
68
- block_ran.should == true
69
- end
70
-
71
- end
72
-
73
- end