module-cluster 1.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 ADDED
@@ -0,0 +1,112 @@
1
+ # Module Cluster #
2
+
3
+ http://rubygems.org/gems/module-cluster
4
+
5
+ # Description #
6
+
7
+ Adds methods for defining module clusters using #included and #extended.
8
+
9
+ # Summary #
10
+
11
+ Provides :define_module_inclusion, :define_module_extension, and :define_module_cluster.
12
+
13
+ # Install #
14
+
15
+ * sudo gem install module-cluster
16
+
17
+ # Usage #
18
+
19
+ Simply:
20
+
21
+ ```ruby
22
+ module SomeModule
23
+ include ModuleCluster
24
+ end
25
+ ```
26
+
27
+ To cause modules to be included when this module is included:
28
+
29
+ ```ruby
30
+ module SomeModule
31
+ define_module_inclusion do |includes, extends|
32
+ includes.concat [ SomeOtherModule ]
33
+ end
34
+ end
35
+ ```
36
+
37
+ or extended when this module is included:
38
+
39
+ ```ruby
40
+ module SomeModule
41
+ define_module_inclusion do |includes, extends|
42
+ extends.concat [ SomeOtherModule ]
43
+ end
44
+ end
45
+ ```
46
+
47
+ or when this module is extended
48
+
49
+ ```ruby
50
+ module SomeModule
51
+ define_module_extension do |includes, extends|
52
+ includes.concat [ SomeOtherModule ]
53
+ end
54
+ end
55
+ ```
56
+
57
+ or
58
+
59
+ ```ruby
60
+ module SomeModule
61
+ define_module_extension do |includes, extends|
62
+ extends.concat [ SomeOtherModule ]
63
+ end
64
+ end
65
+ ```
66
+
67
+ or when this module is either included or extended:
68
+
69
+ ```ruby
70
+ module SomeModule
71
+ define_module_cluster do |includes, extends|
72
+ includes.concat [ SomeOtherModule ]
73
+ end
74
+ end
75
+ ```
76
+
77
+ or
78
+
79
+ ```ruby
80
+ module SomeModule
81
+ define_module_cluster do |includes, extends|
82
+ extends.concat [ SomeOtherModule ]
83
+ end
84
+ end
85
+ ```
86
+
87
+ If the block returns [ includes, extends ] as arrays, those values will be used; otherwise, the contents of the includes and extends parameters passed to the block will be used.
88
+
89
+ # License #
90
+
91
+ (The MIT License)
92
+
93
+ Copyright (c) 2011 Asher
94
+
95
+ Permission is hereby granted, free of charge, to any person obtaining
96
+ a copy of this software and associated documentation files (the
97
+ 'Software'), to deal in the Software without restriction, including
98
+ without limitation the rights to use, copy, modify, merge, publish,
99
+ distribute, sublicense, and/or sell copies of the Software, and to
100
+ permit persons to whom the Software is furnished to do so, subject to
101
+ the following conditions:
102
+
103
+ The above copyright notice and this permission notice shall be
104
+ included in all copies or substantial portions of the Software.
105
+
106
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
107
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
108
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
109
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
110
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
111
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
112
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
File without changes
@@ -0,0 +1,13 @@
1
+
2
+ module ModuleCluster
3
+ module IncludeSupport
4
+ end
5
+ module ExtendSupport
6
+ end
7
+ end
8
+
9
+ require_relative 'module-cluster/ModuleCluster.rb'
10
+ require_relative 'module-cluster/_private_/ModuleCluster.rb'
11
+ require_relative 'module-cluster/ModuleCluster/IncludeExtendSupport.rb'
12
+ require_relative 'module-cluster/ModuleCluster/IncludeSupport.rb'
13
+ require_relative 'module-cluster/ModuleCluster/ExtendSupport.rb'
@@ -0,0 +1,38 @@
1
+
2
+ module ModuleCluster
3
+
4
+ #############################
5
+ # define_module_inclusion #
6
+ #############################
7
+
8
+ def define_module_inclusion( & block )
9
+ inclusion_array, extension_array = yield_for_includes_extends( block )
10
+ ModuleCluster::IncludeSupport.set_includes_for_class_or_module( self, inclusion_array )
11
+ ModuleCluster::IncludeSupport.set_extends_for_class_or_module( self, extension_array )
12
+ extend ModuleCluster::IncludeSupport
13
+ return self
14
+ end
15
+
16
+ #############################
17
+ # define_module_extension #
18
+ #############################
19
+
20
+ def define_module_extension( & block )
21
+ inclusion_array, extension_array = yield_for_includes_extends( block )
22
+ ModuleCluster::ExtendSupport.set_includes_for_class_or_module( self, inclusion_array )
23
+ ModuleCluster::ExtendSupport.set_extends_for_class_or_module( self, extension_array )
24
+ extend ModuleCluster::ExtendSupport
25
+ return self
26
+ end
27
+
28
+ ###########################
29
+ # define_module_cluster #
30
+ ###########################
31
+
32
+ def define_module_cluster( & include_extend_block )
33
+ define_module_inclusion( & include_extend_block )
34
+ define_module_extension( & include_extend_block )
35
+ return self
36
+ end
37
+
38
+ end
@@ -0,0 +1,23 @@
1
+
2
+ module ModuleCluster::ExtendSupport
3
+
4
+ extend ModuleCluster::IncludeExtendSupport
5
+
6
+ ##############
7
+ # extended #
8
+ ##############
9
+
10
+ def extended( class_or_module )
11
+ super if defined?( super )
12
+ module_self = self
13
+ class_or_module.instance_eval do
14
+ ModuleCluster::ExtendSupport.includes_for_class_or_module( module_self ).each do |this_module|
15
+ include this_module
16
+ end
17
+ ModuleCluster::ExtendSupport.extends_for_class_or_module( module_self ).each do |this_module|
18
+ extend this_module
19
+ end
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,38 @@
1
+
2
+ module ModuleCluster::IncludeExtendSupport
3
+
4
+ ######################################
5
+ # set_includes_for_class_or_module #
6
+ ######################################
7
+
8
+ def set_includes_for_class_or_module( class_or_module, includes )
9
+ @includes_for_class_or_module ||= Hash.new
10
+ @includes_for_class_or_module[ class_or_module ] = includes
11
+ end
12
+
13
+ #####################################
14
+ # set_extends_for_class_or_module #
15
+ #####################################
16
+
17
+ def set_extends_for_class_or_module( class_or_module, extends )
18
+ @extends_for_class_or_module ||= Hash.new
19
+ @extends_for_class_or_module[ class_or_module ] = extends
20
+ end
21
+
22
+ ############################################
23
+ # includes_for_class_or_module_inclusion #
24
+ ############################################
25
+
26
+ def includes_for_class_or_module( class_or_module )
27
+ return @includes_for_class_or_module[ class_or_module ] ||= Array.new
28
+ end
29
+
30
+ ###########################################
31
+ # extends_for_class_or_module_extension #
32
+ ###########################################
33
+
34
+ def extends_for_class_or_module( class_or_module )
35
+ return @extends_for_class_or_module[ class_or_module ] ||= Array.new
36
+ end
37
+
38
+ end
@@ -0,0 +1,23 @@
1
+
2
+ module ModuleCluster::IncludeSupport
3
+
4
+ extend ModuleCluster::IncludeExtendSupport
5
+
6
+ ##############
7
+ # included #
8
+ ##############
9
+
10
+ def included( class_or_module )
11
+ super if defined?( super )
12
+ module_self = self
13
+ class_or_module.instance_eval do
14
+ ModuleCluster::IncludeSupport.includes_for_class_or_module( module_self ).each do |this_module|
15
+ include this_module
16
+ end
17
+ ModuleCluster::IncludeSupport.extends_for_class_or_module( module_self ).each do |this_module|
18
+ extend this_module
19
+ end
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,22 @@
1
+
2
+ module ModuleCluster
3
+
4
+ ###########################################################################################################
5
+ private ###############################################################################################
6
+ ###########################################################################################################
7
+
8
+ def yield_for_includes_extends( block )
9
+ inclusion_array = Array.new
10
+ extension_array = Array.new
11
+ returned_includes, returned_extends = block.call( inclusion_array, extension_array )
12
+ inclusion_array = returned_includes if returned_includes.is_a?( Array )
13
+ extension_array = returned_extends if returned_extends.is_a?( Array )
14
+ unless inclusion_array.is_a?( Array ) and extension_array.is_a?( Array )
15
+ raise 'Expected module inclusion/extension variables to remain Array. Received ' +
16
+ inclusion_array.inspect + ' for inclusion array, and ' + extension_array.inspect +
17
+ ' for extension array.'
18
+ end
19
+ return inclusion_array, extension_array
20
+ end
21
+
22
+ end
@@ -0,0 +1,46 @@
1
+
2
+ require_relative '../../lib/module-cluster.rb'
3
+
4
+ describe ModuleCluster::IncludeExtendSupport do
5
+
6
+ ############################################
7
+ # set_includes_for_class_or_module #
8
+ # includes_for_class_or_module_inclusion #
9
+ ############################################
10
+
11
+ it 'can set and return includes for a class or module' do
12
+ module ModuleCluster::IncludeExtendSupport::Mock01
13
+ extend ModuleCluster::IncludeExtendSupport
14
+ module MockModule1
15
+ end
16
+ module MockModule2
17
+ end
18
+ end
19
+ class ModuleCluster::IncludeExtendSupport::MockClass
20
+ includes = [ ModuleCluster::IncludeExtendSupport::Mock01::MockModule1,
21
+ ModuleCluster::IncludeExtendSupport::Mock01::MockModule2 ]
22
+ ModuleCluster::IncludeExtendSupport::Mock01.set_includes_for_class_or_module( self, includes )
23
+ end
24
+ end
25
+
26
+ ###########################################
27
+ # set_extends_for_class_or_module #
28
+ # extends_for_class_or_module_extension #
29
+ ###########################################
30
+
31
+ it 'can set and return extends for a class or module' do
32
+ module ModuleCluster::IncludeExtendSupport::Mock02
33
+ extend ModuleCluster::IncludeExtendSupport
34
+ module MockModule1
35
+ end
36
+ module MockModule2
37
+ end
38
+ end
39
+ class ModuleCluster::IncludeExtendSupport::MockClass
40
+ includes = [ ModuleCluster::IncludeExtendSupport::Mock02::MockModule1,
41
+ ModuleCluster::IncludeExtendSupport::Mock02::MockModule2 ]
42
+ ModuleCluster::IncludeExtendSupport::Mock02.set_includes_for_class_or_module( self, includes )
43
+ end
44
+ end
45
+
46
+ end
@@ -0,0 +1,282 @@
1
+ require_relative '../lib/module-cluster.rb'
2
+
3
+ describe ModuleCluster do
4
+
5
+ #############################
6
+ # define_module_inclusion #
7
+ #############################
8
+
9
+ it 'can define includes and extends for module inclusion' do
10
+ module ModuleCluster::MockInclusion01
11
+ extend ModuleCluster
12
+ module Mock1
13
+ end
14
+ module Mock2
15
+ end
16
+ module Mock3
17
+ end
18
+ define_module_inclusion do |includes, extends|
19
+ includes.concat [ Mock1, Mock2 ]
20
+ extends.concat [ Mock3 ]
21
+ end
22
+ end
23
+ module ModuleCluster::MockInclusion01a
24
+ ancestors.include?( ModuleCluster::MockInclusion01::Mock1 ).should == false
25
+ ancestors.include?( ModuleCluster::MockInclusion01::Mock2 ).should == false
26
+ include ModuleCluster::MockInclusion01
27
+ ancestors.include?( ModuleCluster::MockInclusion01::Mock1 ).should == true
28
+ ancestors.include?( ModuleCluster::MockInclusion01::Mock2 ).should == true
29
+ eigenclass = class << self ; self ; end
30
+ eigenclass.ancestors.include?( ModuleCluster::MockInclusion01::Mock3 ).should == true
31
+ end
32
+ module ModuleCluster::MockInclusion02
33
+ extend ModuleCluster
34
+ module Mock1
35
+ end
36
+ module Mock2
37
+ end
38
+ module Mock3
39
+ end
40
+ define_module_inclusion do |includes, extends|
41
+ includes.concat [ Mock1, Mock2 ]
42
+ end
43
+ end
44
+ module ModuleCluster::MockInclusion02a
45
+ ancestors.include?( ModuleCluster::MockInclusion02::Mock1 ).should == false
46
+ ancestors.include?( ModuleCluster::MockInclusion02::Mock2 ).should == false
47
+ include ModuleCluster::MockInclusion02
48
+ ancestors.include?( ModuleCluster::MockInclusion02::Mock1 ).should == true
49
+ ancestors.include?( ModuleCluster::MockInclusion02::Mock2 ).should == true
50
+ eigenclass = class << self ; self ; end
51
+ eigenclass.ancestors.include?( ModuleCluster::MockInclusion02::Mock3 ).should == false
52
+ end
53
+ module ModuleCluster::MockInclusion03
54
+ extend ModuleCluster
55
+ module Mock1
56
+ end
57
+ module Mock2
58
+ end
59
+ module Mock3
60
+ end
61
+ define_module_inclusion do |includes, extends|
62
+ extends.concat [ Mock3 ]
63
+ end
64
+ end
65
+ module ModuleCluster::MockInclusion03a
66
+ ancestors.include?( ModuleCluster::MockInclusion03::Mock1 ).should == false
67
+ ancestors.include?( ModuleCluster::MockInclusion03::Mock2 ).should == false
68
+ include ModuleCluster::MockInclusion03
69
+ ancestors.include?( ModuleCluster::MockInclusion03::Mock1 ).should == false
70
+ ancestors.include?( ModuleCluster::MockInclusion03::Mock2 ).should == false
71
+ eigenclass = class << self ; self ; end
72
+ eigenclass.ancestors.include?( ModuleCluster::MockInclusion03::Mock3 ).should == true
73
+ end
74
+ end
75
+
76
+ #############################
77
+ # define_module_extension #
78
+ #############################
79
+
80
+ it 'can define includes and extends for module extension' do
81
+ module ModuleCluster::MockExtension01
82
+ extend ModuleCluster
83
+ module Mock1
84
+ end
85
+ module Mock2
86
+ end
87
+ module Mock3
88
+ end
89
+ define_module_extension do |includes, extends|
90
+ includes.concat [ Mock1, Mock2 ]
91
+ extends.concat [ Mock3 ]
92
+ end
93
+ end
94
+ module ModuleCluster::MockExtension01a
95
+ ancestors.include?( ModuleCluster::MockExtension01::Mock1 ).should == false
96
+ ancestors.include?( ModuleCluster::MockExtension01::Mock2 ).should == false
97
+ extend ModuleCluster::MockExtension01
98
+ ancestors.include?( ModuleCluster::MockExtension01::Mock1 ).should == true
99
+ ancestors.include?( ModuleCluster::MockExtension01::Mock2 ).should == true
100
+ eigenclass = class << self ; self ; end
101
+ eigenclass.ancestors.include?( ModuleCluster::MockExtension01::Mock3 ).should == true
102
+ end
103
+ module ModuleCluster::MockExtension02
104
+ extend ModuleCluster
105
+ module Mock1
106
+ end
107
+ module Mock2
108
+ end
109
+ module Mock3
110
+ end
111
+ define_module_extension do |includes, extends|
112
+ includes.concat [ Mock1, Mock2 ]
113
+ end
114
+ end
115
+ module ModuleCluster::MockExtension02a
116
+ ancestors.include?( ModuleCluster::MockExtension02::Mock1 ).should == false
117
+ ancestors.include?( ModuleCluster::MockExtension02::Mock2 ).should == false
118
+ extend ModuleCluster::MockExtension02
119
+ ancestors.include?( ModuleCluster::MockExtension02::Mock1 ).should == true
120
+ ancestors.include?( ModuleCluster::MockExtension02::Mock2 ).should == true
121
+ eigenclass = class << self ; self ; end
122
+ eigenclass.ancestors.include?( ModuleCluster::MockExtension02::Mock3 ).should == false
123
+ end
124
+ module ModuleCluster::MockExtension03
125
+ extend ModuleCluster
126
+ module Mock1
127
+ end
128
+ module Mock2
129
+ end
130
+ module Mock3
131
+ end
132
+ define_module_extension do |includes, extends|
133
+ extends.concat [ Mock3 ]
134
+ end
135
+ end
136
+ module ModuleCluster::MockExtension03a
137
+ ancestors.include?( ModuleCluster::MockExtension03::Mock1 ).should == false
138
+ ancestors.include?( ModuleCluster::MockExtension03::Mock2 ).should == false
139
+ extend ModuleCluster::MockExtension03
140
+ ancestors.include?( ModuleCluster::MockExtension03::Mock1 ).should == false
141
+ ancestors.include?( ModuleCluster::MockExtension03::Mock2 ).should == false
142
+ eigenclass = class << self ; self ; end
143
+ eigenclass.ancestors.include?( ModuleCluster::MockExtension03::Mock3 ).should == true
144
+ end
145
+ end
146
+
147
+ ###########################
148
+ # define_module_cluster #
149
+ ###########################
150
+
151
+ it 'can define includes and extends for module extension and inclusion' do
152
+ module ModuleCluster::MockClusterInclusion01
153
+ extend ModuleCluster
154
+ module Mock1
155
+ end
156
+ module Mock2
157
+ end
158
+ module Mock3
159
+ end
160
+ define_module_cluster do |includes, extends|
161
+ includes.concat [ Mock1, Mock2 ]
162
+ extends.concat [ Mock3 ]
163
+ end
164
+ end
165
+ module ModuleCluster::MockClusterInclusion01a
166
+ ancestors.include?( ModuleCluster::MockClusterInclusion01::Mock1 ).should == false
167
+ ancestors.include?( ModuleCluster::MockClusterInclusion01::Mock2 ).should == false
168
+ include ModuleCluster::MockClusterInclusion01
169
+ ancestors.include?( ModuleCluster::MockClusterInclusion01::Mock1 ).should == true
170
+ ancestors.include?( ModuleCluster::MockClusterInclusion01::Mock2 ).should == true
171
+ eigenclass = class << self ; self ; end
172
+ eigenclass.ancestors.include?( ModuleCluster::MockClusterInclusion01::Mock3 ).should == true
173
+ end
174
+ module ModuleCluster::MockClusterInclusion02
175
+ extend ModuleCluster
176
+ module Mock1
177
+ end
178
+ module Mock2
179
+ end
180
+ module Mock3
181
+ end
182
+ define_module_cluster do |includes, extends|
183
+ includes.concat [ Mock1, Mock2 ]
184
+ end
185
+ end
186
+ module ModuleCluster::MockClusterInclusion02a
187
+ ancestors.include?( ModuleCluster::MockClusterInclusion02::Mock1 ).should == false
188
+ ancestors.include?( ModuleCluster::MockClusterInclusion02::Mock2 ).should == false
189
+ include ModuleCluster::MockClusterInclusion02
190
+ ancestors.include?( ModuleCluster::MockClusterInclusion02::Mock1 ).should == true
191
+ ancestors.include?( ModuleCluster::MockClusterInclusion02::Mock2 ).should == true
192
+ eigenclass = class << self ; self ; end
193
+ eigenclass.ancestors.include?( ModuleCluster::MockClusterInclusion02::Mock3 ).should == false
194
+ end
195
+ module ModuleCluster::MockClusterInclusion03
196
+ extend ModuleCluster
197
+ module Mock1
198
+ end
199
+ module Mock2
200
+ end
201
+ module Mock3
202
+ end
203
+ define_module_cluster do |includes, extends|
204
+ extends.concat [ Mock3 ]
205
+ end
206
+ end
207
+ module ModuleCluster::MockClusterInclusion03a
208
+ ancestors.include?( ModuleCluster::MockClusterInclusion03::Mock1 ).should == false
209
+ ancestors.include?( ModuleCluster::MockClusterInclusion03::Mock2 ).should == false
210
+ include ModuleCluster::MockClusterInclusion03
211
+ ancestors.include?( ModuleCluster::MockClusterInclusion03::Mock1 ).should == false
212
+ ancestors.include?( ModuleCluster::MockClusterInclusion03::Mock2 ).should == false
213
+ eigenclass = class << self ; self ; end
214
+ eigenclass.ancestors.include?( ModuleCluster::MockClusterInclusion03::Mock3 ).should == true
215
+ end
216
+ module ModuleCluster::MockClusterExtension01
217
+ extend ModuleCluster
218
+ module Mock1
219
+ end
220
+ module Mock2
221
+ end
222
+ module Mock3
223
+ end
224
+ define_module_cluster do |includes, extends|
225
+ includes.concat [ Mock1, Mock2 ]
226
+ extends.concat [ Mock3 ]
227
+ end
228
+ end
229
+ module ModuleCluster::MockClusterExtension01a
230
+ ancestors.include?( ModuleCluster::MockClusterExtension01::Mock1 ).should == false
231
+ ancestors.include?( ModuleCluster::MockClusterExtension01::Mock2 ).should == false
232
+ extend ModuleCluster::MockClusterExtension01
233
+ ancestors.include?( ModuleCluster::MockClusterExtension01::Mock1 ).should == true
234
+ ancestors.include?( ModuleCluster::MockClusterExtension01::Mock2 ).should == true
235
+ eigenclass = class << self ; self ; end
236
+ eigenclass.ancestors.include?( ModuleCluster::MockClusterExtension01::Mock3 ).should == true
237
+ end
238
+ module ModuleCluster::MockClusterExtension02
239
+ extend ModuleCluster
240
+ module Mock1
241
+ end
242
+ module Mock2
243
+ end
244
+ module Mock3
245
+ end
246
+ define_module_cluster do |includes, extends|
247
+ includes.concat [ Mock1, Mock2 ]
248
+ end
249
+ end
250
+ module ModuleCluster::MockClusterExtension02a
251
+ ancestors.include?( ModuleCluster::MockClusterExtension02::Mock1 ).should == false
252
+ ancestors.include?( ModuleCluster::MockClusterExtension02::Mock2 ).should == false
253
+ extend ModuleCluster::MockClusterExtension02
254
+ ancestors.include?( ModuleCluster::MockClusterExtension02::Mock1 ).should == true
255
+ ancestors.include?( ModuleCluster::MockClusterExtension02::Mock2 ).should == true
256
+ eigenclass = class << self ; self ; end
257
+ eigenclass.ancestors.include?( ModuleCluster::MockClusterExtension02::Mock3 ).should == false
258
+ end
259
+ module ModuleCluster::MockClusterExtension03
260
+ extend ModuleCluster
261
+ module Mock1
262
+ end
263
+ module Mock2
264
+ end
265
+ module Mock3
266
+ end
267
+ define_module_cluster do |includes, extends|
268
+ extends.concat [ Mock3 ]
269
+ end
270
+ end
271
+ module ModuleCluster::MockClusterExtension03a
272
+ ancestors.include?( ModuleCluster::MockClusterExtension03::Mock1 ).should == false
273
+ ancestors.include?( ModuleCluster::MockClusterExtension03::Mock2 ).should == false
274
+ extend ModuleCluster::MockClusterExtension03
275
+ ancestors.include?( ModuleCluster::MockClusterExtension03::Mock1 ).should == false
276
+ ancestors.include?( ModuleCluster::MockClusterExtension03::Mock2 ).should == false
277
+ eigenclass = class << self ; self ; end
278
+ eigenclass.ancestors.include?( ModuleCluster::MockClusterExtension03::Mock3 ).should == true
279
+ end
280
+ end
281
+
282
+ end
metadata ADDED
@@ -0,0 +1,73 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: module-cluster
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 0
8
+ - 0
9
+ version: 1.0.0
10
+ platform: ruby
11
+ authors:
12
+ - Asher
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2011-07-21 00:00:00 -04:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: Provides :define_module_inclusion, :define_module_extension, and :define_module_cluster.
22
+ email: asher@ridiculouspower.com
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files: []
28
+
29
+ files:
30
+ - lib/module-cluster/_private_/ModuleCluster.rb
31
+ - lib/module-cluster/ModuleCluster/ExtendSupport.rb
32
+ - lib/module-cluster/ModuleCluster/IncludeExtendSupport.rb
33
+ - lib/module-cluster/ModuleCluster/IncludeSupport.rb
34
+ - lib/module-cluster/ModuleCluster.rb
35
+ - lib/module-cluster.rb
36
+ - spec/ModuleCluster/IncludeExtendSupport_spec.rb
37
+ - spec/ModuleCluster_spec.rb
38
+ - README.md
39
+ - README.rdoc
40
+ has_rdoc: true
41
+ homepage: http://rubygems.org/gems/module-cluster
42
+ licenses: []
43
+
44
+ post_install_message:
45
+ rdoc_options: []
46
+
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ segments:
55
+ - 0
56
+ version: "0"
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ segments:
63
+ - 0
64
+ version: "0"
65
+ requirements: []
66
+
67
+ rubyforge_project: module-cluster
68
+ rubygems_version: 1.3.7
69
+ signing_key:
70
+ specification_version: 3
71
+ summary: "Adds methods for defining module clusters using #included and #extended."
72
+ test_files: []
73
+