module-cluster 1.4.4 → 1.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. data/README.md +21 -0
  2. data/README.rdoc +21 -0
  3. data/lib/module-cluster/ModuleCluster/Define/Block/CascadingClass.rb +83 -0
  4. data/lib/module-cluster/ModuleCluster/Define/Block/CascadingClassOrModule.rb +70 -0
  5. data/lib/module-cluster/ModuleCluster/Define/Block/CascadingModule.rb +79 -0
  6. data/lib/module-cluster/ModuleCluster/Define/Block/CascadingModuleOrSubclass.rb +22 -0
  7. data/lib/module-cluster/ModuleCluster/Define/Block/Class.rb +15 -7
  8. data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrInstance.rb +15 -7
  9. data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModule.rb +15 -7
  10. data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModuleOrInstance.rb +15 -7
  11. data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrModuleOrSubclass.rb +11 -3
  12. data/lib/module-cluster/ModuleCluster/Define/Block/ClassOrSubclass.rb +10 -2
  13. data/lib/module-cluster/ModuleCluster/Define/Block/Instance.rb +15 -3
  14. data/lib/module-cluster/ModuleCluster/Define/Block/Module.rb +15 -7
  15. data/lib/module-cluster/ModuleCluster/Define/Block/ModuleOrInstance.rb +15 -7
  16. data/lib/module-cluster/ModuleCluster/Define/Block/ModuleOrSubclass.rb +10 -2
  17. data/lib/module-cluster/ModuleCluster/Define/Block/Subclass.rb +13 -2
  18. data/lib/module-cluster/ModuleCluster/Define/Block.rb +1 -1
  19. data/lib/module-cluster/ModuleCluster/Define/ClassCluster.rb +19 -19
  20. data/lib/module-cluster/ModuleCluster/Define/ClassOrInstanceCluster.rb +34 -34
  21. data/lib/module-cluster/ModuleCluster/Define/Cluster.rb +19 -19
  22. data/lib/module-cluster/ModuleCluster/Define/ClusterCascades.rb +19 -19
  23. data/lib/module-cluster/ModuleCluster/Define/ClusterCascadesToClass.rb +19 -19
  24. data/lib/module-cluster/ModuleCluster/Define/ClusterCascadesToModule.rb +19 -19
  25. data/lib/module-cluster/ModuleCluster/Define/Deprecated.rb +1 -1
  26. data/lib/module-cluster/ModuleCluster/Define/InstanceCluster.rb +3 -3
  27. data/lib/module-cluster/ModuleCluster/Define/ModuleCluster.rb +19 -19
  28. data/lib/module-cluster/ModuleCluster/Define/ModuleOrClassCluster.rb +43 -43
  29. data/lib/module-cluster/ModuleCluster/Define/ModuleOrInstanceCluster.rb +34 -34
  30. data/lib/module-cluster/ModuleCluster/Define/Status.rb +1 -1
  31. data/lib/module-cluster/ModuleCluster/Define.rb +1 -1
  32. data/lib/module-cluster/ModuleCluster/Suspend/Hooks.rb +1 -1
  33. data/lib/module-cluster/ModuleCluster/Suspend/WithoutHooks.rb +1 -1
  34. data/lib/module-cluster/ModuleCluster/Suspend.rb +1 -1
  35. data/lib/module-cluster/ModuleCluster.rb +1 -1
  36. data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/ClusterStack.rb +3 -3
  37. data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/PerformCascades.rb +85 -32
  38. data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures/Subclass.rb +6 -3
  39. data/lib/module-cluster/_private_/ModuleCluster/CascadeFeatures.rb +5 -5
  40. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Class.rb +9 -9
  41. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Inherited.rb +3 -3
  42. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Instance.rb +5 -5
  43. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Module.rb +9 -9
  44. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block/Set.rb +1 -0
  45. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Block.rb +1 -1
  46. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Extends.rb +13 -13
  47. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Includes.rb +10 -10
  48. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/PrependsExtends.rb +13 -13
  49. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/PrependsIncludes.rb +10 -10
  50. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Set/MultiSetProxy.rb +1 -1
  51. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Status.rb +1 -1
  52. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack/Suspend.rb +1 -1
  53. data/lib/module-cluster/_private_/ModuleCluster/ClusterStack.rb +1 -1
  54. data/lib/module-cluster/_private_/ModuleCluster/ExtendForCascade/Subclass.rb +1 -1
  55. data/lib/module-cluster/_private_/ModuleCluster/ExtendForCascade.rb +1 -1
  56. data/lib/module-cluster.rb +14 -2
  57. data/spec/ModuleCluster/Define/Block/CascadingClassOrModule_spec.rb +285 -0
  58. data/spec/ModuleCluster/Define/Block/CascadingClass_spec.rb +241 -0
  59. data/spec/ModuleCluster/Define/Block/CascadingModuleOrSubclass_spec.rb +56 -0
  60. data/spec/ModuleCluster/Define/Block/CascadingModule_spec.rb +278 -0
  61. data/spec/ModuleCluster/Define/Block/ClassOrInstance_spec.rb +13 -13
  62. data/spec/ModuleCluster/Define/Block/ClassOrModuleOrInstance_spec.rb +13 -13
  63. data/spec/ModuleCluster/Define/Block/ClassOrModuleOrSubclass_spec.rb +2 -3
  64. data/spec/ModuleCluster/Define/Block/ClassOrModule_spec.rb +13 -13
  65. data/spec/ModuleCluster/Define/Block/ClassOrSubclass_spec.rb +2 -2
  66. data/spec/ModuleCluster/Define/Block/Class_spec.rb +13 -13
  67. data/spec/ModuleCluster/Define/Block/Instance_spec.rb +5 -5
  68. data/spec/ModuleCluster/Define/Block/ModuleOrInstance_spec.rb +1 -1
  69. data/spec/ModuleCluster/Define/Block/ModuleOrSubclass_spec.rb +2 -4
  70. data/spec/ModuleCluster/Define/Block/Module_spec.rb +13 -13
  71. data/spec/ModuleCluster/Define/Block/Subclass_spec.rb +8 -8
  72. data/spec/ModuleCluster/Define/Block_spec.rb +9 -9
  73. data/spec/ModuleCluster/Define/ClassCluster_spec.rb +227 -227
  74. data/spec/ModuleCluster/Define/ClassOrInstanceCluster_spec.rb +197 -197
  75. data/spec/ModuleCluster/Define/ClusterCascadesToClass_spec.rb +228 -228
  76. data/spec/ModuleCluster/Define/ClusterCascadesToModule_spec.rb +232 -232
  77. data/spec/ModuleCluster/Define/ClusterCascades_spec.rb +224 -224
  78. data/spec/ModuleCluster/Define/Cluster_spec.rb +221 -221
  79. data/spec/ModuleCluster/Define/InstanceCluster_spec.rb +29 -29
  80. data/spec/ModuleCluster/Define/ModuleCluster_spec.rb +227 -227
  81. data/spec/ModuleCluster/Define/ModuleOrClassCluster_spec.rb +227 -227
  82. data/spec/ModuleCluster/Define/ModuleOrInstanceCluster_spec.rb +197 -197
  83. data/spec/ModuleCluster/Suspend/Hooks_spec.rb +120 -120
  84. data/spec/ModuleCluster/Suspend/WithoutHooks_spec.rb +120 -120
  85. data/spec/ModuleCluster_spec.rb +2 -2
  86. data/spec/_private_/ModuleCluster/CascadeFeatures/PerformCascades_spec.rb +192 -192
  87. data/spec/_private_/ModuleCluster/ClusterStack/Set/MultiSetProxy_spec.rb +129 -129
  88. data/spec/_private_/ModuleCluster/ClusterStack/Suspend_spec.rb +17 -17
  89. metadata +9 -1
@@ -1,5 +1,5 @@
1
1
 
2
- module ModuleCluster::ClusterStack::PrependsExtends
2
+ module ::ModuleCluster::ClusterStack::PrependsExtends
3
3
 
4
4
  #############################
5
5
  # prepend_extend_hooks #
@@ -14,7 +14,7 @@ module ModuleCluster::ClusterStack::PrependsExtends
14
14
  ##############################
15
15
 
16
16
  def extend_prepends_includes( module_instance, method, includes, runtime_includes_block )
17
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :all, :include, includes, runtime_includes_block )
17
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :all, :include, includes, runtime_includes_block )
18
18
  prepend_extend_hooks.push( new_set )
19
19
  return new_set
20
20
  end
@@ -24,7 +24,7 @@ module ModuleCluster::ClusterStack::PrependsExtends
24
24
  #############################
25
25
 
26
26
  def extend_prepends_extends( module_instance, method, extends, runtime_extends_block )
27
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :all, :extend, extends, runtime_extends_block )
27
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :all, :extend, extends, runtime_extends_block )
28
28
  prepend_extend_hooks.push( new_set )
29
29
  return new_set
30
30
  end
@@ -34,7 +34,7 @@ module ModuleCluster::ClusterStack::PrependsExtends
34
34
  ##########################################
35
35
 
36
36
  def extend_prepends_includes_and_extends( module_instance, method, includes_and_extends, runtime_includes_and_extends_block )
37
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :all, :include_and_extend, includes_and_extends, runtime_includes_and_extends_block )
37
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :all, :include_and_extend, includes_and_extends, runtime_includes_and_extends_block )
38
38
  prepend_extend_hooks.push( new_set )
39
39
  return new_set
40
40
  end
@@ -44,7 +44,7 @@ module ModuleCluster::ClusterStack::PrependsExtends
44
44
  #####################################
45
45
 
46
46
  def module_extend_prepends_includes( module_instance, method, includes, runtime_includes_block )
47
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :module, :include, includes, runtime_includes_block )
47
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :module, :include, includes, runtime_includes_block )
48
48
  prepend_extend_hooks.push( new_set )
49
49
  return new_set
50
50
  end
@@ -54,7 +54,7 @@ module ModuleCluster::ClusterStack::PrependsExtends
54
54
  ####################################
55
55
 
56
56
  def module_extend_prepends_extends( module_instance, method, extends, runtime_extends_block )
57
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :module, :extend, extends, runtime_extends_block )
57
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :module, :extend, extends, runtime_extends_block )
58
58
  prepend_extend_hooks.push( new_set )
59
59
  return new_set
60
60
  end
@@ -64,7 +64,7 @@ module ModuleCluster::ClusterStack::PrependsExtends
64
64
  #################################################
65
65
 
66
66
  def module_extend_prepends_includes_and_extends( module_instance, method, includes_and_extends, runtime_includes_and_extends_block )
67
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :module, :include_and_extend, includes_and_extends, runtime_includes_and_extends_block )
67
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :module, :include_and_extend, includes_and_extends, runtime_includes_and_extends_block )
68
68
  prepend_extend_hooks.push( new_set )
69
69
  return new_set
70
70
  end
@@ -74,7 +74,7 @@ module ModuleCluster::ClusterStack::PrependsExtends
74
74
  ####################################
75
75
 
76
76
  def class_extend_prepends_includes( module_instance, method, includes, runtime_includes_block )
77
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :class, :include, includes, runtime_includes_block )
77
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :class, :include, includes, runtime_includes_block )
78
78
  prepend_extend_hooks.push( new_set )
79
79
  return new_set
80
80
  end
@@ -84,7 +84,7 @@ module ModuleCluster::ClusterStack::PrependsExtends
84
84
  ###################################
85
85
 
86
86
  def class_extend_prepends_extends( module_instance, method, extends, runtime_extends_block )
87
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :class, :extend, extends, runtime_extends_block )
87
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :class, :extend, extends, runtime_extends_block )
88
88
  prepend_extend_hooks.push( new_set )
89
89
  return new_set
90
90
  end
@@ -94,7 +94,7 @@ module ModuleCluster::ClusterStack::PrependsExtends
94
94
  ################################################
95
95
 
96
96
  def class_extend_prepends_includes_and_extends( module_instance, method, includes_and_extends, runtime_includes_and_extends_block )
97
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :class, :include_and_extend, includes_and_extends, runtime_includes_and_extends_block )
97
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :class, :include_and_extend, includes_and_extends, runtime_includes_and_extends_block )
98
98
  prepend_extend_hooks.push( new_set )
99
99
  return new_set
100
100
  end
@@ -104,7 +104,7 @@ module ModuleCluster::ClusterStack::PrependsExtends
104
104
  #######################################
105
105
 
106
106
  def instance_extend_prepends_includes( module_instance, method, includes, runtime_includes_block )
107
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :instance, :include, includes, runtime_includes_block )
107
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :instance, :include, includes, runtime_includes_block )
108
108
  prepend_extend_hooks.push( new_set )
109
109
  return new_set
110
110
  end
@@ -114,7 +114,7 @@ module ModuleCluster::ClusterStack::PrependsExtends
114
114
  ######################################
115
115
 
116
116
  def instance_extend_prepends_extends( module_instance, method, extends, runtime_extends_block )
117
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :instance, :extend, extends, runtime_extends_block )
117
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :instance, :extend, extends, runtime_extends_block )
118
118
  prepend_extend_hooks.push( new_set )
119
119
  return new_set
120
120
  end
@@ -124,7 +124,7 @@ module ModuleCluster::ClusterStack::PrependsExtends
124
124
  ###################################################
125
125
 
126
126
  def instance_extend_prepends_includes_and_extends( module_instance, method, includes_and_extends, runtime_includes_and_extends_block )
127
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :instance, :include_and_extend, includes_and_extends, runtime_includes_and_extends_block )
127
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :instance, :include_and_extend, includes_and_extends, runtime_includes_and_extends_block )
128
128
  prepend_extend_hooks.push( new_set )
129
129
  return new_set
130
130
  end
@@ -1,5 +1,5 @@
1
1
 
2
- module ModuleCluster::ClusterStack::PrependsIncludes
2
+ module ::ModuleCluster::ClusterStack::PrependsIncludes
3
3
 
4
4
  ##############################
5
5
  # prepend_include_hooks #
@@ -14,7 +14,7 @@ module ModuleCluster::ClusterStack::PrependsIncludes
14
14
  ###############################
15
15
 
16
16
  def include_prepends_includes( module_instance, method, includes, runtime_includes_block )
17
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :all, :include, includes, runtime_includes_block )
17
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :all, :include, includes, runtime_includes_block )
18
18
  prepend_include_hooks.push( new_set )
19
19
  return new_set
20
20
  end
@@ -24,7 +24,7 @@ module ModuleCluster::ClusterStack::PrependsIncludes
24
24
  ##############################
25
25
 
26
26
  def include_prepends_extends( module_instance, method, extends, runtime_extends_block )
27
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :all, :extend, extends, runtime_extends_block )
27
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :all, :extend, extends, runtime_extends_block )
28
28
  prepend_include_hooks.push( new_set )
29
29
  return new_set
30
30
  end
@@ -34,7 +34,7 @@ module ModuleCluster::ClusterStack::PrependsIncludes
34
34
  ###########################################
35
35
 
36
36
  def include_prepends_includes_and_extends( module_instance, method, includes_and_extends, runtime_includes_and_extends_block )
37
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :all, :include_and_extend, includes_and_extends, runtime_includes_and_extends_block )
37
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :all, :include_and_extend, includes_and_extends, runtime_includes_and_extends_block )
38
38
  prepend_include_hooks.push( new_set )
39
39
  return new_set
40
40
  end
@@ -44,7 +44,7 @@ module ModuleCluster::ClusterStack::PrependsIncludes
44
44
  ######################################
45
45
 
46
46
  def module_include_prepends_includes( module_instance, method, includes, runtime_includes_block )
47
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :module, :include, includes, runtime_includes_block )
47
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :module, :include, includes, runtime_includes_block )
48
48
  prepend_include_hooks.push( new_set )
49
49
  return new_set
50
50
  end
@@ -54,7 +54,7 @@ module ModuleCluster::ClusterStack::PrependsIncludes
54
54
  #####################################
55
55
 
56
56
  def module_include_prepends_extends( module_instance, method, extends, runtime_extends_block )
57
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :module, :extend, extends, runtime_extends_block )
57
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :module, :extend, extends, runtime_extends_block )
58
58
  prepend_include_hooks.push( new_set )
59
59
  return new_set
60
60
  end
@@ -64,7 +64,7 @@ module ModuleCluster::ClusterStack::PrependsIncludes
64
64
  ##################################################
65
65
 
66
66
  def module_include_prepends_includes_and_extends( module_instance, method, includes_and_extends, runtime_includes_and_extends_block )
67
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :module, :include_and_extend, includes_and_extends, runtime_includes_and_extends_block )
67
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :module, :include_and_extend, includes_and_extends, runtime_includes_and_extends_block )
68
68
  prepend_include_hooks.push( new_set )
69
69
  return new_set
70
70
  end
@@ -74,7 +74,7 @@ module ModuleCluster::ClusterStack::PrependsIncludes
74
74
  #####################################
75
75
 
76
76
  def class_include_prepends_includes( module_instance, method, includes, runtime_includes_block )
77
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :class, :include, includes, runtime_includes_block )
77
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :class, :include, includes, runtime_includes_block )
78
78
  prepend_include_hooks.push( new_set )
79
79
  return new_set
80
80
  end
@@ -84,7 +84,7 @@ module ModuleCluster::ClusterStack::PrependsIncludes
84
84
  ####################################
85
85
 
86
86
  def class_include_prepends_extends( module_instance, method, extends, runtime_extends_block )
87
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :class, :extend, extends, runtime_extends_block )
87
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :class, :extend, extends, runtime_extends_block )
88
88
  prepend_include_hooks.push( new_set )
89
89
  return new_set
90
90
  end
@@ -94,7 +94,7 @@ module ModuleCluster::ClusterStack::PrependsIncludes
94
94
  #################################################
95
95
 
96
96
  def class_include_prepends_includes_and_extends( module_instance, method, includes_and_extends, runtime_includes_and_extends_block )
97
- new_set = ModuleCluster::ClusterStack::Set.new( module_instance, method, :class, :include_and_extend, includes_and_extends, runtime_includes_and_extends_block )
97
+ new_set = ::ModuleCluster::ClusterStack::Set.new( module_instance, method, :class, :include_and_extend, includes_and_extends, runtime_includes_and_extends_block )
98
98
  prepend_include_hooks.push( new_set )
99
99
  return new_set
100
100
  end
@@ -1,5 +1,5 @@
1
1
 
2
- class ModuleCluster::ClusterStack::Set::MultiSetProxy < Array
2
+ class ::ModuleCluster::ClusterStack::Set::MultiSetProxy < Array
3
3
 
4
4
  ################
5
5
  # initialize #
@@ -1,5 +1,5 @@
1
1
 
2
- module ModuleCluster::ClusterStack::Status
2
+ module ::ModuleCluster::ClusterStack::Status
3
3
 
4
4
  ###############
5
5
  # all_hooks #
@@ -1,5 +1,5 @@
1
1
 
2
- module ModuleCluster::ClusterStack::Suspend
2
+ module ::ModuleCluster::ClusterStack::Suspend
3
3
 
4
4
  #######################
5
5
  # suspend_any_hooks #
@@ -1,5 +1,5 @@
1
1
 
2
- class ModuleCluster::ClusterStack
2
+ class ::ModuleCluster::ClusterStack
3
3
 
4
4
  include Block
5
5
  include Includes
@@ -1,5 +1,5 @@
1
1
 
2
- module ModuleCluster::ExtendForCascade::Subclass
2
+ module ::ModuleCluster::ExtendForCascade::Subclass
3
3
 
4
4
  ##############
5
5
  # extended #
@@ -1,5 +1,5 @@
1
1
 
2
- module ModuleCluster::ExtendForCascade
2
+ module ::ModuleCluster::ExtendForCascade
3
3
 
4
4
  ##############
5
5
  # extended #
@@ -1,5 +1,5 @@
1
1
 
2
- module ModuleCluster
2
+ module ::ModuleCluster
3
3
  class ClusterStack
4
4
  module Block
5
5
  module Class
@@ -48,6 +48,14 @@ module ModuleCluster
48
48
  end
49
49
  module ModuleOrSubclass
50
50
  end
51
+ module CascadingClass
52
+ end
53
+ module CascadingClassOrModule
54
+ end
55
+ module CascadingModule
56
+ end
57
+ module CascadingModuleOrSubclass
58
+ end
51
59
  end
52
60
  module ClusterStack
53
61
  end
@@ -67,7 +75,7 @@ module ModuleCluster
67
75
  end
68
76
  module InstanceCluster
69
77
  end
70
- module ModuleCluster
78
+ module ::ModuleCluster
71
79
  end
72
80
  module ModuleOrClassCluster
73
81
  end
@@ -133,6 +141,10 @@ require_relative 'module-cluster/ModuleCluster/Define/Block/ClassOrModuleOrSubcl
133
141
  require_relative 'module-cluster/ModuleCluster/Define/Block/Subclass.rb'
134
142
  require_relative 'module-cluster/ModuleCluster/Define/Block/ModuleOrSubclass.rb'
135
143
  require_relative 'module-cluster/ModuleCluster/Define/Block/ClassOrSubclass.rb'
144
+ require_relative 'module-cluster/ModuleCluster/Define/Block/CascadingClass.rb'
145
+ require_relative 'module-cluster/ModuleCluster/Define/Block/CascadingModule.rb'
146
+ require_relative 'module-cluster/ModuleCluster/Define/Block/CascadingClassOrModule.rb'
147
+ require_relative 'module-cluster/ModuleCluster/Define/Block/CascadingModuleOrSubclass.rb'
136
148
  require_relative 'module-cluster/ModuleCluster/Define/Block.rb'
137
149
 
138
150
  require_relative 'module-cluster/ModuleCluster/Define/Deprecated.rb'
@@ -0,0 +1,285 @@
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