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.
- data/README.md +127 -337
- data/lib/module-cluster.rb +1 -153
- data/lib/module/cluster.rb +341 -0
- data/lib/module/cluster/class_support.rb +22 -0
- data/lib/module/cluster/cluster.rb +10 -0
- data/lib/module/cluster/cluster/cluster_interface.rb +550 -0
- data/lib/module/cluster/exception/module_not_in_stack.rb +26 -0
- data/lib/module/cluster/instance_controller.rb +14 -0
- data/lib/module/cluster/instance_controller/hook_controller.rb +33 -0
- data/lib/module/cluster/instance_controller/hook_controller/chain_proxy.rb +511 -0
- data/lib/module/cluster/instance_controller/hook_controller/hook_controller_interface.rb +830 -0
- data/lib/module/cluster/instance_controller/instance_controller_interface.rb +269 -0
- data/lib/module/cluster/instance_controller/multiple_hook_controller_proxy.rb +359 -0
- data/lib/module/cluster/instance_controller/multiple_hook_controller_proxy/chain_proxy.rb +442 -0
- data/lib/module/cluster/module_support.rb +67 -0
- data/lib/module/namespaces.rb +13 -0
- data/lib/module/requires.rb +32 -0
- data/spec/module/cluster/cluster_spec.rb +473 -0
- data/spec/module/cluster/instance_controller/hook_controller_spec.rb +922 -0
- data/spec/module/cluster/instance_controller/multiple_hook_controller_proxy_spec.rb +1240 -0
- data/spec/module/cluster_spec.rb +1794 -0
- metadata +27 -98
- data/README.rdoc +0 -395
- data/lib/module-cluster/ModuleCluster.rb +0 -9
- data/lib/module-cluster/ModuleCluster/Define.rb +0 -12
- data/lib/module-cluster/ModuleCluster/Define/Block.rb +0 -9
- data/lib/module-cluster/ModuleCluster/Define/Block/CascadingClass.rb +0 -83
- data/lib/module-cluster/ModuleCluster/Define/Block/CascadingClassOrModule.rb +0 -70
- data/lib/module-cluster/ModuleCluster/Define/Block/CascadingModule.rb +0 -79
- data/lib/module-cluster/ModuleCluster/Define/Block/CascadingModuleOrSubclass.rb +0 -21
- data/lib/module-cluster/ModuleCluster/Define/Block/Class.rb +0 -77
- data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrInstance.rb +0 -78
- data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModule.rb +0 -78
- data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModuleOrInstance.rb +0 -78
- data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModuleOrSubclass.rb +0 -36
- data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrSubclass.rb +0 -29
- data/lib/module-cluster/ModuleCluster/Define/Block/Instance.rb +0 -45
- data/lib/module-cluster/ModuleCluster/Define/Block/Module.rb +0 -77
- data/lib/module-cluster/ModuleCluster/Define/Block/ModuleOrInstance.rb +0 -78
- data/lib/module-cluster/ModuleCluster/Define/Block/ModuleOrSubclass.rb +0 -29
- data/lib/module-cluster/ModuleCluster/Define/Block/Subclass.rb +0 -56
- data/lib/module-cluster/ModuleCluster/Define/ClassCluster.rb +0 -193
- data/lib/module-cluster/ModuleCluster/Define/ClassOrInstanceCluster.rb +0 -128
- data/lib/module-cluster/ModuleCluster/Define/Cluster.rb +0 -181
- data/lib/module-cluster/ModuleCluster/Define/ClusterCascades.rb +0 -185
- data/lib/module-cluster/ModuleCluster/Define/ClusterCascadesToClass.rb +0 -181
- data/lib/module-cluster/ModuleCluster/Define/ClusterCascadesToModule.rb +0 -181
- data/lib/module-cluster/ModuleCluster/Define/Deprecated.rb +0 -40
- data/lib/module-cluster/ModuleCluster/Define/InstanceCluster.rb +0 -45
- data/lib/module-cluster/ModuleCluster/Define/ModuleCluster.rb +0 -193
- data/lib/module-cluster/ModuleCluster/Define/ModuleOrClassCluster.rb +0 -209
- data/lib/module-cluster/ModuleCluster/Define/ModuleOrInstanceCluster.rb +0 -128
- data/lib/module-cluster/ModuleCluster/Define/Status.rb +0 -106
- data/lib/module-cluster/ModuleCluster/Suspend.rb +0 -7
- data/lib/module-cluster/ModuleCluster/Suspend/Hooks.rb +0 -315
- data/lib/module-cluster/ModuleCluster/Suspend/WithoutHooks.rb +0 -153
- data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures.rb +0 -77
- data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/ClusterStack.rb +0 -44
- data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/PerformCascades.rb +0 -292
- data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/Subclass.rb +0 -24
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack.rb +0 -12
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block.rb +0 -9
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Class.rb +0 -36
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Inherited.rb +0 -20
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Instance.rb +0 -20
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Module.rb +0 -36
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Set.rb +0 -6
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Extends.rb +0 -140
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Includes.rb +0 -110
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/PrependsExtends.rb +0 -140
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/PrependsIncludes.rb +0 -110
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Set.rb +0 -35
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Set/MultiSetProxy.rb +0 -359
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Status.rb +0 -55
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Suspend.rb +0 -199
- data/lib/module-cluster/_private_/ModuleCluster/ExtendForCascade.rb +0 -34
- data/spec/ModuleCluster/Define/Block/CascadingClassOrModule_spec.rb +0 -285
- data/spec/ModuleCluster/Define/Block/CascadingClass_spec.rb +0 -254
- data/spec/ModuleCluster/Define/Block/CascadingModuleOrSubclass_spec.rb +0 -56
- data/spec/ModuleCluster/Define/Block/CascadingModule_spec.rb +0 -278
- data/spec/ModuleCluster/Define/Block/ClassOrInstance_spec.rb +0 -230
- data/spec/ModuleCluster/Define/Block/ClassOrModuleOrInstance_spec.rb +0 -238
- data/spec/ModuleCluster/Define/Block/ClassOrModuleOrSubclass_spec.rb +0 -54
- data/spec/ModuleCluster/Define/Block/ClassOrModule_spec.rb +0 -231
- data/spec/ModuleCluster/Define/Block/ClassOrSubclass_spec.rb +0 -54
- data/spec/ModuleCluster/Define/Block/Class_spec.rb +0 -224
- data/spec/ModuleCluster/Define/Block/Instance_spec.rb +0 -78
- data/spec/ModuleCluster/Define/Block/ModuleOrInstance_spec.rb +0 -54
- data/spec/ModuleCluster/Define/Block/ModuleOrSubclass_spec.rb +0 -51
- data/spec/ModuleCluster/Define/Block/Module_spec.rb +0 -230
- data/spec/ModuleCluster/Define/Block/Subclass_spec.rb +0 -73
- data/spec/ModuleCluster/Define/Block_spec.rb +0 -18
- data/spec/ModuleCluster/Define/ClassCluster_spec.rb +0 -728
- data/spec/ModuleCluster/Define/ClassOrInstanceCluster_spec.rb +0 -576
- data/spec/ModuleCluster/Define/ClusterCascadesToClass_spec.rb +0 -659
- data/spec/ModuleCluster/Define/ClusterCascadesToModule_spec.rb +0 -678
- data/spec/ModuleCluster/Define/ClusterCascades_spec.rb +0 -644
- data/spec/ModuleCluster/Define/Cluster_spec.rb +0 -708
- data/spec/ModuleCluster/Define/InstanceCluster_spec.rb +0 -102
- data/spec/ModuleCluster/Define/ModuleCluster_spec.rb +0 -728
- data/spec/ModuleCluster/Define/ModuleOrClassCluster_spec.rb +0 -728
- data/spec/ModuleCluster/Define/ModuleOrInstanceCluster_spec.rb +0 -576
- data/spec/ModuleCluster/Suspend/Hooks_spec.rb +0 -573
- data/spec/ModuleCluster/Suspend/WithoutHooks_spec.rb +0 -559
- data/spec/ModuleCluster_spec.rb +0 -15
- data/spec/_private_/ModuleCluster/CascadeFeatures/PerformCascades_spec.rb +0 -386
- data/spec/_private_/ModuleCluster/ClusterStack/Set/MultiSetProxy_spec.rb +0 -419
- data/spec/_private_/ModuleCluster/ClusterStack/Suspend_spec.rb +0 -242
@@ -1,55 +0,0 @@
|
|
1
|
-
|
2
|
-
module ::ModuleCluster::ClusterStack::Status
|
3
|
-
|
4
|
-
###############
|
5
|
-
# all_hooks #
|
6
|
-
###############
|
7
|
-
|
8
|
-
def all_hooks
|
9
|
-
return @all_hooks ||= ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( all_include_hooks, all_extend_hooks )
|
10
|
-
end
|
11
|
-
|
12
|
-
#######################
|
13
|
-
# all_include_hooks #
|
14
|
-
#######################
|
15
|
-
|
16
|
-
def all_include_hooks
|
17
|
-
return @all_include_hooks ||= ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( prepend_include_hooks, include_hooks )
|
18
|
-
end
|
19
|
-
|
20
|
-
######################
|
21
|
-
# all_extend_hooks #
|
22
|
-
#######################
|
23
|
-
|
24
|
-
def all_extend_hooks
|
25
|
-
return @all_extend_hooks ||= ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( prepend_extend_hooks, extend_hooks )
|
26
|
-
end
|
27
|
-
|
28
|
-
###################
|
29
|
-
# has_any_hook? #
|
30
|
-
###################
|
31
|
-
|
32
|
-
def has_any_hook?( description )
|
33
|
-
hooks = all_hooks.hooks_with( description )
|
34
|
-
return hooks ||= false
|
35
|
-
end
|
36
|
-
|
37
|
-
###########################
|
38
|
-
# has_any_include_hook? #
|
39
|
-
###########################
|
40
|
-
|
41
|
-
def has_any_include_hook?( description )
|
42
|
-
hooks = all_include_hooks.hooks_with( description )
|
43
|
-
return hooks ||= false
|
44
|
-
end
|
45
|
-
|
46
|
-
##########################
|
47
|
-
# has_any_extend_hook? #
|
48
|
-
##########################
|
49
|
-
|
50
|
-
def has_any_extend_hook?( description )
|
51
|
-
hooks = all_extend_hooks.hooks_with( description )
|
52
|
-
return hooks ||= false
|
53
|
-
end
|
54
|
-
|
55
|
-
end
|
@@ -1,199 +0,0 @@
|
|
1
|
-
|
2
|
-
module ::ModuleCluster::ClusterStack::Suspend
|
3
|
-
|
4
|
-
#######################
|
5
|
-
# suspend_any_hooks #
|
6
|
-
#######################
|
7
|
-
|
8
|
-
def suspend_any_hooks
|
9
|
-
@all_hooks_suspended = true
|
10
|
-
end
|
11
|
-
|
12
|
-
###############################
|
13
|
-
# suspend_any_include_hooks #
|
14
|
-
###############################
|
15
|
-
|
16
|
-
def suspend_any_include_hooks
|
17
|
-
@all_include_hooks_suspended = true
|
18
|
-
end
|
19
|
-
|
20
|
-
##############################
|
21
|
-
# suspend_any_extend_hooks #
|
22
|
-
##############################
|
23
|
-
|
24
|
-
def suspend_any_extend_hooks
|
25
|
-
@all_extend_hooks_suspended = true
|
26
|
-
end
|
27
|
-
|
28
|
-
###########################
|
29
|
-
# suspend_include_hooks #
|
30
|
-
###########################
|
31
|
-
|
32
|
-
def suspend_include_hooks
|
33
|
-
@include_hooks_suspended = true
|
34
|
-
end
|
35
|
-
|
36
|
-
##########################
|
37
|
-
# suspend_extend_hooks #
|
38
|
-
##########################
|
39
|
-
|
40
|
-
def suspend_extend_hooks
|
41
|
-
@extend_hooks_suspended = true
|
42
|
-
end
|
43
|
-
|
44
|
-
###################################
|
45
|
-
# suspend_prepend_include_hooks #
|
46
|
-
###################################
|
47
|
-
|
48
|
-
def suspend_prepend_include_hooks
|
49
|
-
@prepend_include_hooks_suspended = true
|
50
|
-
end
|
51
|
-
|
52
|
-
##################################
|
53
|
-
# suspend_prepend_extend_hooks #
|
54
|
-
##################################
|
55
|
-
|
56
|
-
def suspend_prepend_extend_hooks
|
57
|
-
@prepend_extend_hooks_suspended = true
|
58
|
-
end
|
59
|
-
|
60
|
-
######################
|
61
|
-
# hooks_suspended? #
|
62
|
-
######################
|
63
|
-
|
64
|
-
def hooks_suspended?( action )
|
65
|
-
|
66
|
-
return true if all_hooks_suspended?
|
67
|
-
|
68
|
-
case action
|
69
|
-
when :include
|
70
|
-
return true if all_include_hooks_suspended?
|
71
|
-
return true if include_hooks_suspended?
|
72
|
-
when :extend
|
73
|
-
return true if all_extend_hooks_suspended?
|
74
|
-
return true if extend_hooks_suspended?
|
75
|
-
when :prepend_include
|
76
|
-
return true if all_include_hooks_suspended?
|
77
|
-
return true if prepend_include_hooks_suspended?
|
78
|
-
when :prepend_extend
|
79
|
-
return true if all_extend_hooks_suspended?
|
80
|
-
return true if prepend_extend_hooks_suspended?
|
81
|
-
end
|
82
|
-
|
83
|
-
return false
|
84
|
-
|
85
|
-
end
|
86
|
-
|
87
|
-
##########################
|
88
|
-
# all_hooks_suspended? #
|
89
|
-
##########################
|
90
|
-
|
91
|
-
def all_hooks_suspended?
|
92
|
-
return @all_hooks_suspended ||= false
|
93
|
-
end
|
94
|
-
|
95
|
-
##################################
|
96
|
-
# all_include_hooks_suspended? #
|
97
|
-
##################################
|
98
|
-
|
99
|
-
def all_include_hooks_suspended?
|
100
|
-
return ( @all_include_hooks_suspended ||= false ) || all_hooks_suspended?
|
101
|
-
end
|
102
|
-
|
103
|
-
#################################
|
104
|
-
# all_extend_hooks_suspended? #
|
105
|
-
#################################
|
106
|
-
|
107
|
-
def all_extend_hooks_suspended?
|
108
|
-
return ( @all_extend_hooks_suspended ||= false ) || all_hooks_suspended?
|
109
|
-
end
|
110
|
-
|
111
|
-
##############################
|
112
|
-
# include_hooks_suspended? #
|
113
|
-
##############################
|
114
|
-
|
115
|
-
def include_hooks_suspended?
|
116
|
-
return ( @include_hooks_suspended ||= false ) || all_include_hooks_suspended?
|
117
|
-
end
|
118
|
-
|
119
|
-
#############################
|
120
|
-
# extend_hooks_suspended? #
|
121
|
-
#############################
|
122
|
-
|
123
|
-
def extend_hooks_suspended?
|
124
|
-
return ( @extend_hooks_suspended ||= false ) || all_extend_hooks_suspended?
|
125
|
-
end
|
126
|
-
|
127
|
-
######################################
|
128
|
-
# prepend_include_hooks_suspended? #
|
129
|
-
######################################
|
130
|
-
|
131
|
-
def prepend_include_hooks_suspended?
|
132
|
-
return ( @prepend_include_hooks_suspended ||= false ) || all_include_hooks_suspended?
|
133
|
-
end
|
134
|
-
|
135
|
-
#####################################
|
136
|
-
# prepend_extend_hooks_suspended? #
|
137
|
-
#####################################
|
138
|
-
|
139
|
-
def prepend_extend_hooks_suspended?
|
140
|
-
return ( @prepend_extend_hooks_suspended ||= false ) || all_extend_hooks_suspended?
|
141
|
-
end
|
142
|
-
|
143
|
-
######################
|
144
|
-
# resume_any_hooks #
|
145
|
-
######################
|
146
|
-
|
147
|
-
def resume_any_hooks
|
148
|
-
@all_hooks_suspended = false
|
149
|
-
end
|
150
|
-
|
151
|
-
##############################
|
152
|
-
# resume_any_include_hooks #
|
153
|
-
##############################
|
154
|
-
|
155
|
-
def resume_any_include_hooks
|
156
|
-
@all_include_hooks_suspended = false
|
157
|
-
end
|
158
|
-
|
159
|
-
#############################
|
160
|
-
# resume_any_extend_hooks #
|
161
|
-
#############################
|
162
|
-
|
163
|
-
def resume_any_extend_hooks
|
164
|
-
@all_extend_hooks_suspended = false
|
165
|
-
end
|
166
|
-
|
167
|
-
##########################
|
168
|
-
# resume_include_hooks #
|
169
|
-
##########################
|
170
|
-
|
171
|
-
def resume_include_hooks
|
172
|
-
@include_hooks_suspended = false
|
173
|
-
end
|
174
|
-
|
175
|
-
#########################
|
176
|
-
# resume_extend_hooks #
|
177
|
-
#########################
|
178
|
-
|
179
|
-
def resume_extend_hooks
|
180
|
-
@extend_hooks_suspended = false
|
181
|
-
end
|
182
|
-
|
183
|
-
##################################
|
184
|
-
# resume_prepend_include_hooks #
|
185
|
-
##################################
|
186
|
-
|
187
|
-
def resume_prepend_include_hooks
|
188
|
-
@prepend_include_hooks_suspended = false
|
189
|
-
end
|
190
|
-
|
191
|
-
#################################
|
192
|
-
# resume_prepend_extend_hooks #
|
193
|
-
#################################
|
194
|
-
|
195
|
-
def resume_prepend_extend_hooks
|
196
|
-
@prepend_extend_hooks_suspended = false
|
197
|
-
end
|
198
|
-
|
199
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
|
2
|
-
module ::ModuleCluster::ExtendForCascade
|
3
|
-
|
4
|
-
##############
|
5
|
-
# extended #
|
6
|
-
##############
|
7
|
-
|
8
|
-
def extended( module_cluster_configuration_instance )
|
9
|
-
|
10
|
-
super
|
11
|
-
|
12
|
-
if module_cluster_configuration_instance.is_a?( Class )
|
13
|
-
|
14
|
-
module_cluster_configuration_instance.module_eval do
|
15
|
-
# when a module-cluster definition module is used to extend a module,
|
16
|
-
# define self#extended, self#included, self#append_features, self#extend_object in
|
17
|
-
# module_cluster_module ( module extended with module-cluster definition module )
|
18
|
-
extend ::ModuleCluster::CascadeFeatures::Subclass
|
19
|
-
end
|
20
|
-
|
21
|
-
else
|
22
|
-
|
23
|
-
module_cluster_configuration_instance.instance_eval do
|
24
|
-
# when a module-cluster definition module is used to extend a module,
|
25
|
-
# define self#extended, self#included, self#append_features, self#extend_object in
|
26
|
-
# module_cluster_module ( module extended with module-cluster definition module )
|
27
|
-
extend ::ModuleCluster::CascadeFeatures
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
@@ -1,285 +0,0 @@
|
|
1
|
-
|
2
|
-
require_relative '../../../../lib/module-cluster.rb'
|
3
|
-
|
4
|
-
describe ::ModuleCluster::Define::Block::CascadingClassOrModule do
|
5
|
-
|
6
|
-
#######################################
|
7
|
-
# cascading_class_or_module_include #
|
8
|
-
#######################################
|
9
|
-
|
10
|
-
it 'can run a block on class or module include' do
|
11
|
-
module ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock01
|
12
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule
|
13
|
-
block_ran = false
|
14
|
-
cascading_class_or_module_include do
|
15
|
-
block_ran = true
|
16
|
-
end
|
17
|
-
respond_to?( :included ).should == true
|
18
|
-
class ClassProofExtended
|
19
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock01
|
20
|
-
end
|
21
|
-
block_ran.should == false
|
22
|
-
class ClassProof
|
23
|
-
include ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock01
|
24
|
-
end
|
25
|
-
block_ran.should == true
|
26
|
-
block_ran = false
|
27
|
-
class ClassProof2 < ClassProof
|
28
|
-
end
|
29
|
-
block_ran.should == true
|
30
|
-
block_ran = false
|
31
|
-
Object.new.instance_eval do
|
32
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock01
|
33
|
-
end
|
34
|
-
block_ran.should == false
|
35
|
-
module ModuleProofExtended
|
36
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock01
|
37
|
-
end
|
38
|
-
block_ran.should == false
|
39
|
-
module ModuleProof
|
40
|
-
include ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock01
|
41
|
-
end
|
42
|
-
block_ran.should == true
|
43
|
-
block_ran = false
|
44
|
-
module ModuleProof2
|
45
|
-
include ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock01::ModuleProof
|
46
|
-
end
|
47
|
-
block_ran.should == true
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
######################################
|
52
|
-
# cascading_class_or_module_extend #
|
53
|
-
######################################
|
54
|
-
|
55
|
-
it 'can run a block on class or module extend' do
|
56
|
-
module ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock02
|
57
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule
|
58
|
-
block_ran = false
|
59
|
-
cascading_class_or_module_extend do
|
60
|
-
block_ran = true
|
61
|
-
end
|
62
|
-
respond_to?( :extended ).should == true
|
63
|
-
class ClassProof
|
64
|
-
include ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock02
|
65
|
-
end
|
66
|
-
block_ran.should == false
|
67
|
-
class ClassProof2 < ClassProof
|
68
|
-
end
|
69
|
-
block_ran.should == true
|
70
|
-
block_ran = false
|
71
|
-
class ClassProofExtended
|
72
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock02
|
73
|
-
end
|
74
|
-
block_ran.should == true
|
75
|
-
block_ran = false
|
76
|
-
Object.new.instance_eval do
|
77
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock02
|
78
|
-
end
|
79
|
-
block_ran.should == false
|
80
|
-
module ModuleProof
|
81
|
-
include ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock02
|
82
|
-
end
|
83
|
-
block_ran.should == false
|
84
|
-
module ModuleProofExtended
|
85
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock02
|
86
|
-
end
|
87
|
-
block_ran.should == true
|
88
|
-
block_ran = false
|
89
|
-
module ModuleProofExtended2
|
90
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock02::ModuleProofExtended
|
91
|
-
end
|
92
|
-
block_ran.should == true
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
#################################################
|
97
|
-
# cascading_class_or_module_include_or_extend #
|
98
|
-
#################################################
|
99
|
-
|
100
|
-
it 'can run a block on class or module include or extend' do
|
101
|
-
module ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock03
|
102
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule
|
103
|
-
block_ran = false
|
104
|
-
cascading_class_or_module_include_or_extend do
|
105
|
-
block_ran = true
|
106
|
-
end
|
107
|
-
respond_to?( :extended ).should == true
|
108
|
-
class ClassProof
|
109
|
-
include ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock03
|
110
|
-
end
|
111
|
-
block_ran.should == true
|
112
|
-
block_ran = false
|
113
|
-
class ClassProof2 < ClassProof
|
114
|
-
end
|
115
|
-
block_ran.should == true
|
116
|
-
block_ran = false
|
117
|
-
class ClassProofExtended
|
118
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock03
|
119
|
-
end
|
120
|
-
block_ran.should == true
|
121
|
-
block_ran = false
|
122
|
-
Object.new.instance_eval do
|
123
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock03
|
124
|
-
end
|
125
|
-
block_ran.should == false
|
126
|
-
module ModuleProof
|
127
|
-
include ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock03
|
128
|
-
end
|
129
|
-
block_ran.should == true
|
130
|
-
block_ran = false
|
131
|
-
module ModuleProofExtended
|
132
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock03
|
133
|
-
end
|
134
|
-
block_ran.should == true
|
135
|
-
block_ran = false
|
136
|
-
module ModuleProofExtended2
|
137
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock03::ModuleProofExtended
|
138
|
-
end
|
139
|
-
block_ran.should == true
|
140
|
-
end
|
141
|
-
end
|
142
|
-
|
143
|
-
###############################################
|
144
|
-
# cascading_prepend_class_or_module_include #
|
145
|
-
###############################################
|
146
|
-
|
147
|
-
it 'can run a block before class or module include' do
|
148
|
-
module ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock04
|
149
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule
|
150
|
-
block_ran = false
|
151
|
-
cascading_prepend_class_or_module_include do
|
152
|
-
block_ran = true
|
153
|
-
end
|
154
|
-
respond_to?( :included ).should == true
|
155
|
-
class ClassProofExtended
|
156
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock04
|
157
|
-
end
|
158
|
-
block_ran.should == false
|
159
|
-
class ClassProof
|
160
|
-
include ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock04
|
161
|
-
end
|
162
|
-
block_ran.should == true
|
163
|
-
block_ran = false
|
164
|
-
class ClassProof2 < ClassProof
|
165
|
-
end
|
166
|
-
block_ran.should == true
|
167
|
-
block_ran = false
|
168
|
-
Object.new.instance_eval do
|
169
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock04
|
170
|
-
end
|
171
|
-
block_ran.should == false
|
172
|
-
module ModuleProofExtended
|
173
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock04
|
174
|
-
end
|
175
|
-
block_ran.should == false
|
176
|
-
module ModuleProof
|
177
|
-
include ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock04
|
178
|
-
end
|
179
|
-
block_ran.should == true
|
180
|
-
block_ran = false
|
181
|
-
module ModuleProof2
|
182
|
-
include ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock04::ModuleProof
|
183
|
-
end
|
184
|
-
block_ran.should == true
|
185
|
-
end
|
186
|
-
end
|
187
|
-
|
188
|
-
##############################################
|
189
|
-
# cascading_prepend_class_or_module_extend #
|
190
|
-
##############################################
|
191
|
-
|
192
|
-
it 'can run a block before class or module extend' do
|
193
|
-
module ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock05
|
194
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule
|
195
|
-
block_ran = false
|
196
|
-
cascading_prepend_class_or_module_extend do
|
197
|
-
block_ran = true
|
198
|
-
end
|
199
|
-
respond_to?( :extended ).should == true
|
200
|
-
class ClassProof
|
201
|
-
include ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock05
|
202
|
-
end
|
203
|
-
block_ran.should == false
|
204
|
-
class ClassProofExtended
|
205
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock05
|
206
|
-
end
|
207
|
-
block_ran.should == true
|
208
|
-
block_ran = false
|
209
|
-
class ClassProof2 < ClassProof
|
210
|
-
end
|
211
|
-
block_ran.should == true
|
212
|
-
block_ran = false
|
213
|
-
Object.new.instance_eval do
|
214
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock05
|
215
|
-
end
|
216
|
-
block_ran.should == false
|
217
|
-
module ModuleProof
|
218
|
-
include ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock05
|
219
|
-
end
|
220
|
-
block_ran.should == false
|
221
|
-
module ModuleProofExtended
|
222
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock05
|
223
|
-
end
|
224
|
-
block_ran.should == true
|
225
|
-
block_ran = false
|
226
|
-
module ModuleProofExtended2
|
227
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock05::ModuleProofExtended
|
228
|
-
end
|
229
|
-
block_ran.should == true
|
230
|
-
end
|
231
|
-
end
|
232
|
-
|
233
|
-
#########################################################
|
234
|
-
# cascading_prepend_class_or_module_include_or_extend #
|
235
|
-
#########################################################
|
236
|
-
|
237
|
-
it 'can run a block before class or module include or extend' do
|
238
|
-
module ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock06
|
239
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule
|
240
|
-
block_ran = false
|
241
|
-
cascading_prepend_class_or_module_include_or_extend do
|
242
|
-
block_ran = true
|
243
|
-
end
|
244
|
-
respond_to?( :extended ).should == true
|
245
|
-
class ClassProof
|
246
|
-
include ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock06
|
247
|
-
end
|
248
|
-
block_ran.should == true
|
249
|
-
block_ran = false
|
250
|
-
class ClassProofExtended
|
251
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock06
|
252
|
-
end
|
253
|
-
block_ran.should == true
|
254
|
-
block_ran = false
|
255
|
-
class ClassProof2 < ClassProof
|
256
|
-
end
|
257
|
-
block_ran.should == true
|
258
|
-
block_ran = false
|
259
|
-
Object.new.instance_eval do
|
260
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock06
|
261
|
-
end
|
262
|
-
block_ran.should == false
|
263
|
-
module ModuleProof
|
264
|
-
include ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock06
|
265
|
-
end
|
266
|
-
block_ran.should == true
|
267
|
-
block_ran = false
|
268
|
-
module ModuleProof2
|
269
|
-
include ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock06::ModuleProof
|
270
|
-
end
|
271
|
-
block_ran.should == true
|
272
|
-
block_ran = false
|
273
|
-
module ModuleProofExtended
|
274
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock06
|
275
|
-
end
|
276
|
-
block_ran.should == true
|
277
|
-
block_ran = false
|
278
|
-
module ModuleProofExtended2
|
279
|
-
extend ::ModuleCluster::Define::Block::CascadingClassOrModule::Mock06::ModuleProofExtended
|
280
|
-
end
|
281
|
-
block_ran.should == true
|
282
|
-
end
|
283
|
-
end
|
284
|
-
|
285
|
-
end
|