module-cluster 1.3.7 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +146 -1
- data/README.rdoc +146 -1
- data/lib/module-cluster.rb +54 -12
- data/lib/module-cluster/ModuleCluster/Define/Block.rb +3 -0
- data/lib/module-cluster/ModuleCluster/Define/Block/Class.rb +16 -4
- data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrInstance.rb +63 -0
- data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModule.rb +2 -0
- data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModuleOrInstance.rb +63 -0
- data/lib/module-cluster/ModuleCluster/Define/Block/Instance.rb +32 -0
- data/lib/module-cluster/ModuleCluster/Define/Block/Module.rb +16 -4
- data/lib/module-cluster/ModuleCluster/Define/Block/ModuleOrInstance.rb +63 -0
- data/lib/module-cluster/ModuleCluster/Define/ClassCluster.rb +200 -0
- data/lib/module-cluster/ModuleCluster/Define/ClassOrInstanceCluster.rb +127 -0
- data/lib/module-cluster/ModuleCluster/Define/Cluster.rb +7 -19
- data/lib/module-cluster/ModuleCluster/Define/ClusterCascades.rb +5 -20
- data/lib/module-cluster/ModuleCluster/Define/ClusterCascadesToClass.rb +9 -26
- data/lib/module-cluster/ModuleCluster/Define/ClusterCascadesToModule.rb +9 -26
- data/lib/module-cluster/ModuleCluster/Define/InstanceCluster.rb +46 -0
- data/lib/module-cluster/ModuleCluster/Define/ModuleCluster.rb +200 -0
- data/lib/module-cluster/ModuleCluster/Define/ModuleOrClassCluster.rb +208 -0
- data/lib/module-cluster/ModuleCluster/Define/ModuleOrInstanceCluster.rb +127 -0
- data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures.rb +54 -0
- data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/ClusterStack.rb +44 -0
- data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/PerformCascades.rb +209 -0
- data/lib/module-cluster/{ModuleCluster → _private_/ModuleCluster}/ClusterStack.rb +0 -2
- data/lib/module-cluster/{ModuleCluster → _private_/ModuleCluster}/ClusterStack/Block.rb +1 -2
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Class.rb +36 -0
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Instance.rb +20 -0
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Module.rb +36 -0
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Set.rb +2 -0
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Extends.rb +108 -0
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Includes.rb +84 -0
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/PrependsExtends.rb +108 -0
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/PrependsIncludes.rb +84 -0
- data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Set.rb +7 -0
- data/lib/module-cluster/{ModuleCluster → _private_/ModuleCluster}/ExtendForCascade.rb +0 -0
- data/spec/ModuleCluster/Define/Block/ClassOrInstance_spec.rb +230 -0
- data/spec/ModuleCluster/Define/Block/ClassOrModuleOrInstance_spec.rb +238 -0
- data/spec/ModuleCluster/Define/Block/ClassOrModule_spec.rb +231 -0
- data/spec/ModuleCluster/Define/Block/Class_spec.rb +224 -0
- data/spec/ModuleCluster/Define/Block/Instance_spec.rb +78 -0
- data/spec/ModuleCluster/Define/Block/ModuleOrInstance_spec.rb +54 -0
- data/spec/ModuleCluster/Define/Block/Module_spec.rb +224 -0
- data/spec/ModuleCluster/Define/Block_spec.rb +18 -0
- data/spec/ModuleCluster/Define/ClassCluster_spec.rb +728 -0
- data/spec/ModuleCluster/Define/ClassOrInstanceCluster_spec.rb +576 -0
- data/spec/ModuleCluster/Define/ClusterCascadesToClass_spec.rb +298 -60
- data/spec/ModuleCluster/Define/ClusterCascadesToModule_spec.rb +307 -61
- data/spec/ModuleCluster/Define/ClusterCascades_spec.rb +335 -36
- data/spec/ModuleCluster/Define/Cluster_spec.rb +447 -14
- data/spec/ModuleCluster/Define/InstanceCluster_spec.rb +102 -0
- data/spec/ModuleCluster/Define/ModuleCluster_spec.rb +728 -0
- data/spec/ModuleCluster/Define/ModuleOrClassCluster_spec.rb +728 -0
- data/spec/ModuleCluster/Define/ModuleOrInstanceCluster_spec.rb +576 -0
- data/spec/_private_/ModuleCluster/CascadeFeatures/PerformCascades_spec.rb +278 -0
- metadata +42 -13
- data/lib/module-cluster/ModuleCluster/CascadeFeatures.rb +0 -197
- data/lib/module-cluster/ModuleCluster/ClusterStack/Block/Class.rb +0 -36
- data/lib/module-cluster/ModuleCluster/ClusterStack/Block/Module.rb +0 -36
- data/lib/module-cluster/ModuleCluster/ClusterStack/Extends.rb +0 -29
- data/lib/module-cluster/ModuleCluster/ClusterStack/Includes.rb +0 -28
- data/lib/module-cluster/ModuleCluster/ClusterStack/PrependsExtends.rb +0 -28
- data/lib/module-cluster/ModuleCluster/ClusterStack/PrependsIncludes.rb +0 -28
- data/lib/module-cluster/ModuleCluster/Define/ClusterStack.rb +0 -26
@@ -0,0 +1,102 @@
|
|
1
|
+
|
2
|
+
require_relative '../../../lib/module-cluster.rb'
|
3
|
+
|
4
|
+
describe ModuleCluster::Define::InstanceCluster do
|
5
|
+
|
6
|
+
####################################
|
7
|
+
# self.should_include_or_extend? #
|
8
|
+
####################################
|
9
|
+
|
10
|
+
it 'should return true if instance, false otherwise' do
|
11
|
+
ModuleCluster::Define::InstanceCluster.should_include_or_extend?( Kernel ).should == false
|
12
|
+
ModuleCluster::Define::InstanceCluster.should_include_or_extend?( Class ).should == false
|
13
|
+
ModuleCluster::Define::InstanceCluster.should_include_or_extend?( Object.new ).should == true
|
14
|
+
end
|
15
|
+
|
16
|
+
##########################
|
17
|
+
# self.should_cascade? #
|
18
|
+
##########################
|
19
|
+
|
20
|
+
it 'should report false' do
|
21
|
+
ModuleCluster::Define::InstanceCluster.should_cascade?( Kernel ).should == false
|
22
|
+
ModuleCluster::Define::InstanceCluster.should_cascade?( Class ).should == false
|
23
|
+
ModuleCluster::Define::InstanceCluster.should_cascade?( Object.new ).should == false
|
24
|
+
end
|
25
|
+
|
26
|
+
##################################
|
27
|
+
# instance_extend_also_extends #
|
28
|
+
##################################
|
29
|
+
|
30
|
+
it 'can extend other modules when this one extends a module or instance' do
|
31
|
+
module ModuleCluster::Define::InstanceCluster::Mock01
|
32
|
+
extend ModuleCluster::Define::InstanceCluster
|
33
|
+
module Module1
|
34
|
+
end
|
35
|
+
module Module2
|
36
|
+
end
|
37
|
+
instance_extend_also_extends( Module1, Module2 )
|
38
|
+
respond_to?( :extended ).should == true
|
39
|
+
module ModuleProof
|
40
|
+
extend ModuleCluster::Define::InstanceCluster::Mock01
|
41
|
+
ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock01::Module1 ).should == false
|
42
|
+
ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock01::Module2 ).should == false
|
43
|
+
eigenclass = class << self ; self ; end
|
44
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock01::Module1 ).should == false
|
45
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock01::Module2 ).should == false
|
46
|
+
end
|
47
|
+
class ClassProof
|
48
|
+
extend ModuleCluster::Define::InstanceCluster::Mock01
|
49
|
+
ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock01::Module1 ).should == false
|
50
|
+
ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock01::Module2 ).should == false
|
51
|
+
eigenclass = class << self ; self ; end
|
52
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock01::Module1 ).should == false
|
53
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock01::Module2 ).should == false
|
54
|
+
end
|
55
|
+
Object.new.instance_eval do
|
56
|
+
extend ModuleCluster::Define::InstanceCluster::Mock01
|
57
|
+
eigenclass = class << self ; self ; end
|
58
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock01::Module1 ).should == true
|
59
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock01::Module2 ).should == true
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
######################################
|
65
|
+
# instance_extend_prepends_extends #
|
66
|
+
######################################
|
67
|
+
|
68
|
+
it 'can extend other modules before this one when this one extends an instance' do
|
69
|
+
module ModuleCluster::Define::InstanceCluster::Mock02
|
70
|
+
extend ModuleCluster::Define::InstanceCluster
|
71
|
+
module Module1
|
72
|
+
end
|
73
|
+
module Module2
|
74
|
+
end
|
75
|
+
instance_extend_prepends_extends( Module1, Module2 )
|
76
|
+
respond_to?( :extend_object ).should == true
|
77
|
+
module ModuleProof
|
78
|
+
extend ModuleCluster::Define::InstanceCluster::Mock02
|
79
|
+
ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock02::Module1 ).should == false
|
80
|
+
ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock02::Module2 ).should == false
|
81
|
+
eigenclass = class << self ; self ; end
|
82
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock02::Module1 ).should == false
|
83
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock02::Module2 ).should == false
|
84
|
+
end
|
85
|
+
class ClassProof
|
86
|
+
extend ModuleCluster::Define::InstanceCluster::Mock02
|
87
|
+
ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock02::Module1 ).should == false
|
88
|
+
ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock02::Module2 ).should == false
|
89
|
+
eigenclass = class << self ; self ; end
|
90
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock02::Module1 ).should == false
|
91
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock02::Module2 ).should == false
|
92
|
+
end
|
93
|
+
Object.new.instance_eval do
|
94
|
+
extend ModuleCluster::Define::InstanceCluster::Mock02
|
95
|
+
eigenclass = class << self ; self ; end
|
96
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock02::Module1 ).should == true
|
97
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::InstanceCluster::Mock02::Module2 ).should == true
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
@@ -0,0 +1,728 @@
|
|
1
|
+
|
2
|
+
require_relative '../../../lib/module-cluster.rb'
|
3
|
+
|
4
|
+
describe ModuleCluster::Define::ModuleCluster do
|
5
|
+
|
6
|
+
####################################
|
7
|
+
# self.should_include_or_extend? #
|
8
|
+
####################################
|
9
|
+
|
10
|
+
it 'should return true if module (not class), false otherwise' do
|
11
|
+
ModuleCluster::Define::ModuleCluster.should_include_or_extend?( Kernel ).should == true
|
12
|
+
ModuleCluster::Define::ModuleCluster.should_include_or_extend?( Class ).should == false
|
13
|
+
ModuleCluster::Define::ModuleCluster.should_include_or_extend?( Object.new ).should == false
|
14
|
+
end
|
15
|
+
|
16
|
+
##########################
|
17
|
+
# self.should_cascade? #
|
18
|
+
##########################
|
19
|
+
|
20
|
+
it 'should report false' do
|
21
|
+
ModuleCluster::Define::ModuleCluster.should_cascade?( Kernel ).should == false
|
22
|
+
ModuleCluster::Define::ModuleCluster.should_cascade?( Class ).should == false
|
23
|
+
ModuleCluster::Define::ModuleCluster.should_cascade?( Object.new ).should == false
|
24
|
+
end
|
25
|
+
|
26
|
+
##################################
|
27
|
+
# module_include_also_includes #
|
28
|
+
##################################
|
29
|
+
|
30
|
+
it 'can include other modules when this one is included in a module' do
|
31
|
+
module ModuleCluster::Define::ModuleCluster::Mock01
|
32
|
+
extend ModuleCluster::Define::ModuleCluster
|
33
|
+
module Module1
|
34
|
+
end
|
35
|
+
module Module2
|
36
|
+
end
|
37
|
+
module_include_also_includes( Module1, Module2 )
|
38
|
+
respond_to?( :included ).should == true
|
39
|
+
module ModuleProof
|
40
|
+
include ModuleCluster::Define::ModuleCluster::Mock01
|
41
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock01::Module1 ).should == true
|
42
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock01::Module2 ).should == true
|
43
|
+
eigenclass = class << self ; self ; end
|
44
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock01::Module1 ).should == false
|
45
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock01::Module2 ).should == false
|
46
|
+
end
|
47
|
+
class ClassProof
|
48
|
+
include ModuleCluster::Define::ModuleCluster::Mock01
|
49
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock01::Module1 ).should == false
|
50
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock01::Module2 ).should == false
|
51
|
+
eigenclass = class << self ; self ; end
|
52
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock01::Module1 ).should == false
|
53
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock01::Module2 ).should == false
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
#################################
|
59
|
+
# module_include_also_extends #
|
60
|
+
#################################
|
61
|
+
|
62
|
+
it 'can extend other modules when this one is included in a module' do
|
63
|
+
module ModuleCluster::Define::ModuleCluster::Mock02
|
64
|
+
extend ModuleCluster::Define::ModuleCluster
|
65
|
+
module Module1
|
66
|
+
end
|
67
|
+
module Module2
|
68
|
+
end
|
69
|
+
module_include_also_extends( Module1, Module2 )
|
70
|
+
respond_to?( :included ).should == true
|
71
|
+
module ModuleProof
|
72
|
+
include ModuleCluster::Define::ModuleCluster::Mock02
|
73
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock02::Module1 ).should == false
|
74
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock02::Module2 ).should == false
|
75
|
+
eigenclass = class << self ; self ; end
|
76
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock02::Module1 ).should == true
|
77
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock02::Module2 ).should == true
|
78
|
+
end
|
79
|
+
class ClassProof
|
80
|
+
include ModuleCluster::Define::ModuleCluster::Mock02
|
81
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock02::Module1 ).should == false
|
82
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock02::Module2 ).should == false
|
83
|
+
eigenclass = class << self ; self ; end
|
84
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock02::Module1 ).should == false
|
85
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock02::Module2 ).should == false
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
##############################################
|
91
|
+
# module_include_also_includes_and_extends #
|
92
|
+
##############################################
|
93
|
+
|
94
|
+
it 'can include and extend other modules when this one is included in a module' do
|
95
|
+
module ModuleCluster::Define::ModuleCluster::Mock03
|
96
|
+
extend ModuleCluster::Define::ModuleCluster
|
97
|
+
module Module1
|
98
|
+
end
|
99
|
+
module Module2
|
100
|
+
end
|
101
|
+
module_include_also_includes_and_extends( Module1, Module2 )
|
102
|
+
respond_to?( :included ).should == true
|
103
|
+
module ModuleProof
|
104
|
+
include ModuleCluster::Define::ModuleCluster::Mock03
|
105
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock03::Module1 ).should == true
|
106
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock03::Module2 ).should == true
|
107
|
+
eigenclass = class << self ; self ; end
|
108
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock03::Module1 ).should == true
|
109
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock03::Module2 ).should == true
|
110
|
+
end
|
111
|
+
class ClassProof
|
112
|
+
include ModuleCluster::Define::ModuleCluster::Mock03
|
113
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock03::Module1 ).should == false
|
114
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock03::Module2 ).should == false
|
115
|
+
eigenclass = class << self ; self ; end
|
116
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock03::Module1 ).should == false
|
117
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock03::Module2 ).should == false
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
#################################
|
123
|
+
# module_extend_also_includes #
|
124
|
+
#################################
|
125
|
+
|
126
|
+
it 'can include other modules when this one extends a module' do
|
127
|
+
module ModuleCluster::Define::ModuleCluster::Mock04
|
128
|
+
extend ModuleCluster::Define::ModuleCluster
|
129
|
+
module Module1
|
130
|
+
end
|
131
|
+
module Module2
|
132
|
+
end
|
133
|
+
module_extend_also_includes( Module1, Module2 )
|
134
|
+
respond_to?( :extended ).should == true
|
135
|
+
module ModuleProof
|
136
|
+
extend ModuleCluster::Define::ModuleCluster::Mock04
|
137
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock04::Module1 ).should == true
|
138
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock04::Module2 ).should == true
|
139
|
+
eigenclass = class << self ; self ; end
|
140
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock04::Module1 ).should == false
|
141
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock04::Module2 ).should == false
|
142
|
+
end
|
143
|
+
class ClassProof
|
144
|
+
extend ModuleCluster::Define::ModuleCluster::Mock04
|
145
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock04::Module1 ).should == false
|
146
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock04::Module2 ).should == false
|
147
|
+
eigenclass = class << self ; self ; end
|
148
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock04::Module1 ).should == false
|
149
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock04::Module2 ).should == false
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
################################
|
155
|
+
# module_extend_also_extends #
|
156
|
+
################################
|
157
|
+
|
158
|
+
it 'can extend other modules when this one extends a module' do
|
159
|
+
module ModuleCluster::Define::ModuleCluster::Mock05
|
160
|
+
extend ModuleCluster::Define::ModuleCluster
|
161
|
+
module Module1
|
162
|
+
end
|
163
|
+
module Module2
|
164
|
+
end
|
165
|
+
module_extend_also_extends( Module1, Module2 )
|
166
|
+
respond_to?( :extended ).should == true
|
167
|
+
module ModuleProof
|
168
|
+
extend ModuleCluster::Define::ModuleCluster::Mock05
|
169
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock05::Module1 ).should == false
|
170
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock05::Module2 ).should == false
|
171
|
+
eigenclass = class << self ; self ; end
|
172
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock05::Module1 ).should == true
|
173
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock05::Module2 ).should == true
|
174
|
+
end
|
175
|
+
class ClassProof
|
176
|
+
extend ModuleCluster::Define::ModuleCluster::Mock05
|
177
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock05::Module1 ).should == false
|
178
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock05::Module2 ).should == false
|
179
|
+
eigenclass = class << self ; self ; end
|
180
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock05::Module1 ).should == false
|
181
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock05::Module2 ).should == false
|
182
|
+
end
|
183
|
+
Object.new.instance_eval do
|
184
|
+
extend ModuleCluster::Define::ModuleCluster::Mock05
|
185
|
+
eigenclass = class << self ; self ; end
|
186
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock05::Module1 ).should == false
|
187
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock05::Module2 ).should == false
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
#############################################
|
193
|
+
# module_extend_also_includes_and_extends #
|
194
|
+
#############################################
|
195
|
+
|
196
|
+
it 'can include and extend other modules when this one extends a module' do
|
197
|
+
module ModuleCluster::Define::ModuleCluster::Mock06
|
198
|
+
extend ModuleCluster::Define::ModuleCluster
|
199
|
+
module Module1
|
200
|
+
end
|
201
|
+
module Module2
|
202
|
+
end
|
203
|
+
module_extend_also_includes_and_extends( Module1, Module2 )
|
204
|
+
respond_to?( :extended ).should == true
|
205
|
+
module ModuleProof
|
206
|
+
extend ModuleCluster::Define::ModuleCluster::Mock06
|
207
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock06::Module1 ).should == true
|
208
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock06::Module2 ).should == true
|
209
|
+
eigenclass = class << self ; self ; end
|
210
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock06::Module1 ).should == true
|
211
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock06::Module2 ).should == true
|
212
|
+
end
|
213
|
+
class ClassProof
|
214
|
+
extend ModuleCluster::Define::ModuleCluster::Mock06
|
215
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock06::Module1 ).should == false
|
216
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock06::Module2 ).should == false
|
217
|
+
eigenclass = class << self ; self ; end
|
218
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock06::Module1 ).should == false
|
219
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock06::Module2 ).should == false
|
220
|
+
end
|
221
|
+
Object.new.instance_eval do
|
222
|
+
extend ModuleCluster::Define::ModuleCluster::Mock06
|
223
|
+
eigenclass = class << self ; self ; end
|
224
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock06::Module1 ).should == false
|
225
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock06::Module2 ).should == false
|
226
|
+
end
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
|
+
######################################
|
231
|
+
# module_include_prepends_includes #
|
232
|
+
######################################
|
233
|
+
|
234
|
+
it 'can include other modules before this one when this one is included in a module' do
|
235
|
+
module ModuleCluster::Define::ModuleCluster::Mock07
|
236
|
+
extend ModuleCluster::Define::ModuleCluster
|
237
|
+
module Module1
|
238
|
+
end
|
239
|
+
module Module2
|
240
|
+
end
|
241
|
+
module_include_prepends_includes( Module1, Module2 )
|
242
|
+
respond_to?( :append_features ).should == true
|
243
|
+
module ModuleProof
|
244
|
+
include ModuleCluster::Define::ModuleCluster::Mock07
|
245
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock07::Module1 ).should == true
|
246
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock07::Module2 ).should == true
|
247
|
+
eigenclass = class << self ; self ; end
|
248
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock07::Module1 ).should == false
|
249
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock07::Module2 ).should == false
|
250
|
+
end
|
251
|
+
class ClassProof
|
252
|
+
include ModuleCluster::Define::ModuleCluster::Mock07
|
253
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock07::Module1 ).should == false
|
254
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock07::Module2 ).should == false
|
255
|
+
eigenclass = class << self ; self ; end
|
256
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock07::Module1 ).should == false
|
257
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock07::Module2 ).should == false
|
258
|
+
end
|
259
|
+
end
|
260
|
+
end
|
261
|
+
|
262
|
+
#####################################
|
263
|
+
# module_include_prepends_extends #
|
264
|
+
#####################################
|
265
|
+
|
266
|
+
it 'can extend other modules before this one when this one is included in a module' do
|
267
|
+
module ModuleCluster::Define::ModuleCluster::Mock08
|
268
|
+
extend ModuleCluster::Define::ModuleCluster
|
269
|
+
module Module1
|
270
|
+
end
|
271
|
+
module Module2
|
272
|
+
end
|
273
|
+
module_include_prepends_extends( Module1, Module2 )
|
274
|
+
respond_to?( :append_features ).should == true
|
275
|
+
module ModuleProof
|
276
|
+
include ModuleCluster::Define::ModuleCluster::Mock08
|
277
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock08::Module1 ).should == false
|
278
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock08::Module2 ).should == false
|
279
|
+
eigenclass = class << self ; self ; end
|
280
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock08::Module1 ).should == true
|
281
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock08::Module2 ).should == true
|
282
|
+
end
|
283
|
+
class ClassProof
|
284
|
+
include ModuleCluster::Define::ModuleCluster::Mock08
|
285
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock08::Module1 ).should == false
|
286
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock08::Module2 ).should == false
|
287
|
+
eigenclass = class << self ; self ; end
|
288
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock08::Module1 ).should == false
|
289
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock08::Module2 ).should == false
|
290
|
+
end
|
291
|
+
end
|
292
|
+
end
|
293
|
+
|
294
|
+
##################################################
|
295
|
+
# module_include_prepends_includes_and_extends #
|
296
|
+
##################################################
|
297
|
+
|
298
|
+
it 'can include and extend other modules before this one when this one is included in a module' do
|
299
|
+
module ModuleCluster::Define::ModuleCluster::Mock09
|
300
|
+
extend ModuleCluster::Define::ModuleCluster
|
301
|
+
module Module1
|
302
|
+
end
|
303
|
+
module Module2
|
304
|
+
end
|
305
|
+
module_include_prepends_includes_and_extends( Module1, Module2 )
|
306
|
+
respond_to?( :append_features ).should == true
|
307
|
+
module ModuleProof
|
308
|
+
include ModuleCluster::Define::ModuleCluster::Mock09
|
309
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock09::Module1 ).should == true
|
310
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock09::Module2 ).should == true
|
311
|
+
eigenclass = class << self ; self ; end
|
312
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock09::Module1 ).should == true
|
313
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock09::Module2 ).should == true
|
314
|
+
end
|
315
|
+
class ClassProof
|
316
|
+
include ModuleCluster::Define::ModuleCluster::Mock09
|
317
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock09::Module1 ).should == false
|
318
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock09::Module2 ).should == false
|
319
|
+
eigenclass = class << self ; self ; end
|
320
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock09::Module1 ).should == false
|
321
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock09::Module2 ).should == false
|
322
|
+
end
|
323
|
+
end
|
324
|
+
end
|
325
|
+
|
326
|
+
#####################################
|
327
|
+
# module_extend_prepends_includes #
|
328
|
+
#####################################
|
329
|
+
|
330
|
+
it 'can include other modules before this one when this one extends a module' do
|
331
|
+
module ModuleCluster::Define::ModuleCluster::Mock10
|
332
|
+
extend ModuleCluster::Define::ModuleCluster
|
333
|
+
module Module1
|
334
|
+
end
|
335
|
+
module Module2
|
336
|
+
end
|
337
|
+
module_extend_prepends_includes( Module1, Module2 )
|
338
|
+
respond_to?( :extend_object ).should == true
|
339
|
+
module ModuleProof
|
340
|
+
extend ModuleCluster::Define::ModuleCluster::Mock10
|
341
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock10::Module1 ).should == true
|
342
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock10::Module2 ).should == true
|
343
|
+
eigenclass = class << self ; self ; end
|
344
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock10::Module1 ).should == false
|
345
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock10::Module2 ).should == false
|
346
|
+
end
|
347
|
+
class ClassProof
|
348
|
+
extend ModuleCluster::Define::ModuleCluster::Mock10
|
349
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock10::Module1 ).should == false
|
350
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock10::Module2 ).should == false
|
351
|
+
eigenclass = class << self ; self ; end
|
352
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock10::Module1 ).should == false
|
353
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock10::Module2 ).should == false
|
354
|
+
end
|
355
|
+
end
|
356
|
+
end
|
357
|
+
|
358
|
+
####################################
|
359
|
+
# module_extend_prepends_extends #
|
360
|
+
####################################
|
361
|
+
|
362
|
+
it 'can extend other modules before this one when this one extends a module' do
|
363
|
+
module ModuleCluster::Define::ModuleCluster::Mock11
|
364
|
+
extend ModuleCluster::Define::ModuleCluster
|
365
|
+
module Module1
|
366
|
+
end
|
367
|
+
module Module2
|
368
|
+
end
|
369
|
+
module_extend_prepends_extends( Module1, Module2 )
|
370
|
+
respond_to?( :extend_object ).should == true
|
371
|
+
module ModuleProof
|
372
|
+
extend ModuleCluster::Define::ModuleCluster::Mock11
|
373
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock11::Module1 ).should == false
|
374
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock11::Module2 ).should == false
|
375
|
+
eigenclass = class << self ; self ; end
|
376
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock11::Module1 ).should == true
|
377
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock11::Module2 ).should == true
|
378
|
+
end
|
379
|
+
class ClassProof
|
380
|
+
extend ModuleCluster::Define::ModuleCluster::Mock11
|
381
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock11::Module1 ).should == false
|
382
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock11::Module2 ).should == false
|
383
|
+
eigenclass = class << self ; self ; end
|
384
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock11::Module1 ).should == false
|
385
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock11::Module2 ).should == false
|
386
|
+
end
|
387
|
+
Object.new.instance_eval do
|
388
|
+
extend ModuleCluster::Define::ModuleCluster::Mock11
|
389
|
+
eigenclass = class << self ; self ; end
|
390
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock11::Module1 ).should == false
|
391
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock11::Module2 ).should == false
|
392
|
+
end
|
393
|
+
end
|
394
|
+
end
|
395
|
+
|
396
|
+
#################################################
|
397
|
+
# module_extend_prepends_includes_and_extends #
|
398
|
+
#################################################
|
399
|
+
|
400
|
+
it 'can include and extend other modules before this one when this one extends a module' do
|
401
|
+
module ModuleCluster::Define::ModuleCluster::Mock12
|
402
|
+
extend ModuleCluster::Define::ModuleCluster
|
403
|
+
module Module1
|
404
|
+
end
|
405
|
+
module Module2
|
406
|
+
end
|
407
|
+
module_extend_prepends_includes_and_extends( Module1, Module2 )
|
408
|
+
respond_to?( :extend_object ).should == true
|
409
|
+
module ModuleProof
|
410
|
+
extend ModuleCluster::Define::ModuleCluster::Mock12
|
411
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock12::Module1 ).should == true
|
412
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock12::Module2 ).should == true
|
413
|
+
eigenclass = class << self ; self ; end
|
414
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock12::Module1 ).should == true
|
415
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock12::Module2 ).should == true
|
416
|
+
end
|
417
|
+
class ClassProof
|
418
|
+
extend ModuleCluster::Define::ModuleCluster::Mock12
|
419
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock12::Module1 ).should == false
|
420
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock12::Module2 ).should == false
|
421
|
+
eigenclass = class << self ; self ; end
|
422
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock12::Module1 ).should == false
|
423
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock12::Module2 ).should == false
|
424
|
+
end
|
425
|
+
Object.new.instance_eval do
|
426
|
+
extend ModuleCluster::Define::ModuleCluster::Mock12
|
427
|
+
eigenclass = class << self ; self ; end
|
428
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock12::Module1 ).should == false
|
429
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock12::Module2 ).should == false
|
430
|
+
end
|
431
|
+
end
|
432
|
+
end
|
433
|
+
|
434
|
+
############################################
|
435
|
+
# module_include_or_extend_also_includes #
|
436
|
+
############################################
|
437
|
+
|
438
|
+
it 'can include other modules when this one is included in or extends a module' do
|
439
|
+
module ModuleCluster::Define::ModuleCluster::Mock13
|
440
|
+
extend ModuleCluster::Define::ModuleCluster
|
441
|
+
module Module1
|
442
|
+
end
|
443
|
+
module Module2
|
444
|
+
end
|
445
|
+
module_include_or_extend_also_includes( Module1, Module2 )
|
446
|
+
respond_to?( :append_features ).should == true
|
447
|
+
module ModuleProof
|
448
|
+
include ModuleCluster::Define::ModuleCluster::Mock13
|
449
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock13::Module1 ).should == true
|
450
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock13::Module2 ).should == true
|
451
|
+
eigenclass = class << self ; self ; end
|
452
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock13::Module1 ).should == false
|
453
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock13::Module2 ).should == false
|
454
|
+
end
|
455
|
+
module ModuleProof2
|
456
|
+
extend ModuleCluster::Define::ModuleCluster::Mock13
|
457
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock13::Module1 ).should == true
|
458
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock13::Module2 ).should == true
|
459
|
+
eigenclass = class << self ; self ; end
|
460
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock13::Module1 ).should == false
|
461
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock13::Module2 ).should == false
|
462
|
+
end
|
463
|
+
class ClassProof
|
464
|
+
include ModuleCluster::Define::ModuleCluster::Mock13
|
465
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock13::Module1 ).should == false
|
466
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock13::Module2 ).should == false
|
467
|
+
eigenclass = class << self ; self ; end
|
468
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock13::Module1 ).should == false
|
469
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock13::Module2 ).should == false
|
470
|
+
end
|
471
|
+
class ClassProof2
|
472
|
+
include ModuleCluster::Define::ModuleCluster::Mock13
|
473
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock13::Module1 ).should == false
|
474
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock13::Module2 ).should == false
|
475
|
+
eigenclass = class << self ; self ; end
|
476
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock13::Module1 ).should == false
|
477
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock13::Module2 ).should == false
|
478
|
+
end
|
479
|
+
end
|
480
|
+
end
|
481
|
+
|
482
|
+
###########################################
|
483
|
+
# module_include_or_extend_also_extends #
|
484
|
+
###########################################
|
485
|
+
|
486
|
+
it 'can extend other modules when this one is included in or extends a module' do
|
487
|
+
module ModuleCluster::Define::ModuleCluster::Mock14
|
488
|
+
extend ModuleCluster::Define::ModuleCluster
|
489
|
+
module Module1
|
490
|
+
end
|
491
|
+
module Module2
|
492
|
+
end
|
493
|
+
module_include_or_extend_also_extends( Module1, Module2 )
|
494
|
+
respond_to?( :included ).should == true
|
495
|
+
module ModuleProof
|
496
|
+
include ModuleCluster::Define::ModuleCluster::Mock14
|
497
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock14::Module1 ).should == false
|
498
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock14::Module2 ).should == false
|
499
|
+
eigenclass = class << self ; self ; end
|
500
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock14::Module1 ).should == true
|
501
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock14::Module2 ).should == true
|
502
|
+
end
|
503
|
+
module ModuleProof2
|
504
|
+
extend ModuleCluster::Define::ModuleCluster::Mock14
|
505
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock14::Module1 ).should == false
|
506
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock14::Module2 ).should == false
|
507
|
+
eigenclass = class << self ; self ; end
|
508
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock14::Module1 ).should == true
|
509
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock14::Module2 ).should == true
|
510
|
+
end
|
511
|
+
class ClassProof
|
512
|
+
include ModuleCluster::Define::ModuleCluster::Mock14
|
513
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock14::Module1 ).should == false
|
514
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock14::Module2 ).should == false
|
515
|
+
eigenclass = class << self ; self ; end
|
516
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock14::Module1 ).should == false
|
517
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock14::Module2 ).should == false
|
518
|
+
end
|
519
|
+
class ClassProof2
|
520
|
+
extend ModuleCluster::Define::ModuleCluster::Mock14
|
521
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock14::Module1 ).should == false
|
522
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock14::Module2 ).should == false
|
523
|
+
eigenclass = class << self ; self ; end
|
524
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock14::Module1 ).should == false
|
525
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock14::Module2 ).should == false
|
526
|
+
end
|
527
|
+
end
|
528
|
+
end
|
529
|
+
|
530
|
+
########################################################
|
531
|
+
# module_include_or_extend_also_includes_and_extends #
|
532
|
+
########################################################
|
533
|
+
|
534
|
+
it 'can include and extend other modules when this one is included in or extends a module' do
|
535
|
+
module ModuleCluster::Define::ModuleCluster::Mock15
|
536
|
+
extend ModuleCluster::Define::ModuleCluster
|
537
|
+
module Module1
|
538
|
+
end
|
539
|
+
module Module2
|
540
|
+
end
|
541
|
+
module_include_or_extend_also_includes_and_extends( Module1, Module2 )
|
542
|
+
respond_to?( :included ).should == true
|
543
|
+
module ModuleProof
|
544
|
+
include ModuleCluster::Define::ModuleCluster::Mock15
|
545
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock15::Module1 ).should == true
|
546
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock15::Module2 ).should == true
|
547
|
+
eigenclass = class << self ; self ; end
|
548
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock15::Module1 ).should == true
|
549
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock15::Module2 ).should == true
|
550
|
+
end
|
551
|
+
module ModuleProo2
|
552
|
+
extend ModuleCluster::Define::ModuleCluster::Mock15
|
553
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock15::Module1 ).should == true
|
554
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock15::Module2 ).should == true
|
555
|
+
eigenclass = class << self ; self ; end
|
556
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock15::Module1 ).should == true
|
557
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock15::Module2 ).should == true
|
558
|
+
end
|
559
|
+
class ClassProof
|
560
|
+
include ModuleCluster::Define::ModuleCluster::Mock15
|
561
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock15::Module1 ).should == false
|
562
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock15::Module2 ).should == false
|
563
|
+
eigenclass = class << self ; self ; end
|
564
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock15::Module1 ).should == false
|
565
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock15::Module2 ).should == false
|
566
|
+
end
|
567
|
+
class ClassProof2
|
568
|
+
extend ModuleCluster::Define::ModuleCluster::Mock15
|
569
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock15::Module1 ).should == false
|
570
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock15::Module2 ).should == false
|
571
|
+
eigenclass = class << self ; self ; end
|
572
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock15::Module1 ).should == false
|
573
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock15::Module2 ).should == false
|
574
|
+
end
|
575
|
+
end
|
576
|
+
end
|
577
|
+
|
578
|
+
################################################
|
579
|
+
# module_include_or_extend_prepends_includes #
|
580
|
+
################################################
|
581
|
+
|
582
|
+
it 'can include other modules before this one when this one is included in or extends a module' do
|
583
|
+
module ModuleCluster::Define::ModuleCluster::Mock16
|
584
|
+
extend ModuleCluster::Define::ModuleCluster
|
585
|
+
module Module1
|
586
|
+
end
|
587
|
+
module Module2
|
588
|
+
end
|
589
|
+
module_include_or_extend_prepends_includes( Module1, Module2 )
|
590
|
+
respond_to?( :append_features ).should == true
|
591
|
+
module ModuleProof
|
592
|
+
include ModuleCluster::Define::ModuleCluster::Mock16
|
593
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock16::Module1 ).should == true
|
594
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock16::Module2 ).should == true
|
595
|
+
eigenclass = class << self ; self ; end
|
596
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock16::Module1 ).should == false
|
597
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock16::Module2 ).should == false
|
598
|
+
end
|
599
|
+
module ModuleProof2
|
600
|
+
extend ModuleCluster::Define::ModuleCluster::Mock16
|
601
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock16::Module1 ).should == true
|
602
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock16::Module2 ).should == true
|
603
|
+
eigenclass = class << self ; self ; end
|
604
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock16::Module1 ).should == false
|
605
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock16::Module2 ).should == false
|
606
|
+
end
|
607
|
+
class ClassProof
|
608
|
+
include ModuleCluster::Define::ModuleCluster::Mock16
|
609
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock16::Module1 ).should == false
|
610
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock16::Module2 ).should == false
|
611
|
+
eigenclass = class << self ; self ; end
|
612
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock16::Module1 ).should == false
|
613
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock16::Module2 ).should == false
|
614
|
+
end
|
615
|
+
class ClassProof2
|
616
|
+
extend ModuleCluster::Define::ModuleCluster::Mock16
|
617
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock16::Module1 ).should == false
|
618
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock16::Module2 ).should == false
|
619
|
+
eigenclass = class << self ; self ; end
|
620
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock16::Module1 ).should == false
|
621
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock16::Module2 ).should == false
|
622
|
+
end
|
623
|
+
end
|
624
|
+
end
|
625
|
+
|
626
|
+
###############################################
|
627
|
+
# module_include_or_extend_prepends_extends #
|
628
|
+
###############################################
|
629
|
+
|
630
|
+
it 'can extend other modules before this one when this one is included in or extends a module' do
|
631
|
+
module ModuleCluster::Define::ModuleCluster::Mock17
|
632
|
+
extend ModuleCluster::Define::ModuleCluster
|
633
|
+
module Module1
|
634
|
+
end
|
635
|
+
module Module2
|
636
|
+
end
|
637
|
+
module_include_or_extend_prepends_extends( Module1, Module2 )
|
638
|
+
respond_to?( :extend_object ).should == true
|
639
|
+
module ModuleProof
|
640
|
+
include ModuleCluster::Define::ModuleCluster::Mock17
|
641
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module1 ).should == false
|
642
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module2 ).should == false
|
643
|
+
eigenclass = class << self ; self ; end
|
644
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module1 ).should == true
|
645
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module2 ).should == true
|
646
|
+
end
|
647
|
+
module ModuleProof2
|
648
|
+
extend ModuleCluster::Define::ModuleCluster::Mock17
|
649
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module1 ).should == false
|
650
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module2 ).should == false
|
651
|
+
eigenclass = class << self ; self ; end
|
652
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module1 ).should == true
|
653
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module2 ).should == true
|
654
|
+
end
|
655
|
+
class ClassProof
|
656
|
+
include ModuleCluster::Define::ModuleCluster::Mock17
|
657
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module1 ).should == false
|
658
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module2 ).should == false
|
659
|
+
eigenclass = class << self ; self ; end
|
660
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module1 ).should == false
|
661
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module2 ).should == false
|
662
|
+
end
|
663
|
+
class ClassProof2
|
664
|
+
extend ModuleCluster::Define::ModuleCluster::Mock17
|
665
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module1 ).should == false
|
666
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module2 ).should == false
|
667
|
+
eigenclass = class << self ; self ; end
|
668
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module1 ).should == false
|
669
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module2 ).should == false
|
670
|
+
end
|
671
|
+
Object.new.instance_eval do
|
672
|
+
extend ModuleCluster::Define::ModuleCluster::Mock17
|
673
|
+
eigenclass = class << self ; self ; end
|
674
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module1 ).should == false
|
675
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock17::Module2 ).should == false
|
676
|
+
end
|
677
|
+
end
|
678
|
+
end
|
679
|
+
|
680
|
+
############################################################
|
681
|
+
# module_include_or_extend_prepends_includes_and_extends #
|
682
|
+
############################################################
|
683
|
+
|
684
|
+
it 'can include and extend other modules before this one when this one is included in or extends a module' do
|
685
|
+
module ModuleCluster::Define::ModuleCluster::Mock18
|
686
|
+
extend ModuleCluster::Define::ModuleCluster
|
687
|
+
module Module1
|
688
|
+
end
|
689
|
+
module Module2
|
690
|
+
end
|
691
|
+
module_include_or_extend_prepends_includes_and_extends( Module1, Module2 )
|
692
|
+
respond_to?( :append_features ).should == true
|
693
|
+
module ModuleProof
|
694
|
+
include ModuleCluster::Define::ModuleCluster::Mock18
|
695
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock18::Module1 ).should == true
|
696
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock18::Module2 ).should == true
|
697
|
+
eigenclass = class << self ; self ; end
|
698
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock18::Module1 ).should == true
|
699
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock18::Module2 ).should == true
|
700
|
+
end
|
701
|
+
module ModuleProof2
|
702
|
+
extend ModuleCluster::Define::ModuleCluster::Mock18
|
703
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock18::Module1 ).should == true
|
704
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock18::Module2 ).should == true
|
705
|
+
eigenclass = class << self ; self ; end
|
706
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock18::Module1 ).should == true
|
707
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock18::Module2 ).should == true
|
708
|
+
end
|
709
|
+
class ClassProof
|
710
|
+
include ModuleCluster::Define::ModuleCluster::Mock18
|
711
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock18::Module1 ).should == false
|
712
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock18::Module2 ).should == false
|
713
|
+
eigenclass = class << self ; self ; end
|
714
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock18::Module1 ).should == false
|
715
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock18::Module2 ).should == false
|
716
|
+
end
|
717
|
+
class ClassProof2
|
718
|
+
extend ModuleCluster::Define::ModuleCluster::Mock18
|
719
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock18::Module1 ).should == false
|
720
|
+
ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock18::Module2 ).should == false
|
721
|
+
eigenclass = class << self ; self ; end
|
722
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock18::Module1 ).should == false
|
723
|
+
eigenclass.ancestors.include?( ModuleCluster::Define::ModuleCluster::Mock18::Module2 ).should == false
|
724
|
+
end
|
725
|
+
end
|
726
|
+
end
|
727
|
+
|
728
|
+
end
|