Module: ModuleCluster::Define::Block::CascadingModule

Extended by:
ExtendForCascade
Includes:
CascadeFeatures::ClusterStack, Subclass, Suspend::WithoutHooks
Included in:
CascadingClassOrModule, CascadingModuleOrSubclass
Defined in:
lib/module-cluster.rb,
lib/module-cluster/ModuleCluster/Define/Block/CascadingModule.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from ExtendForCascade

extended

Methods included from Subclass

#subclass

Methods included from Suspend::WithoutHooks

#without_any_extend_hooks, #without_any_hooks, #without_any_include_hooks, #without_extend_hooks, #without_include_hooks, #without_prepend_extend_hooks, #without_prepend_include_hooks

Methods included from Suspend::Hooks

#all_extend_hooks_suspended?, #all_hooks_suspended?, #all_include_hooks_suspended?, #extend_hooks_suspended?, #hooks_suspended?, #include_hooks_suspended?, #prepend_extend_hooks_suspended?, #prepend_include_hooks_suspended?, #resume_any_extend_hooks, #resume_any_hooks, #resume_any_include_hooks, #resume_extend_hooks, #resume_include_hooks, #resume_prepend_extend_hooks, #resume_prepend_include_hooks, #suspend_any_extend_hooks, #suspend_any_hooks, #suspend_any_include_hooks, #suspend_extend_hooks, #suspend_include_hooks, #suspend_prepend_extend_hooks, #suspend_prepend_include_hooks

Methods included from CascadeFeatures::ClusterStack

#cluster_stack, cluster_stack, cluster_stacks

Class Method Details

.should_cascade?(class_or_module) ⇒ Boolean

self.should_cascade? #

Returns:

  • (Boolean)


15
16
17
# File 'lib/module-cluster/ModuleCluster/Define/Block/CascadingModule.rb', line 15

def self.should_cascade?( class_or_module )
  return true
end

.should_run_block?(hooked_instance) ⇒ Boolean

self.should_run_block? #

Returns:

  • (Boolean)


23
24
25
# File 'lib/module-cluster/ModuleCluster/Define/Block/CascadingModule.rb', line 23

def self.should_run_block?( hooked_instance )
  return hooked_instance.is_a?( Module ) && ! hooked_instance.is_a?( Class )
end

Instance Method Details

#cascading_module_extend(&runtime_block) ⇒ Object

cascading_module_extend #



39
40
41
# File 'lib/module-cluster/ModuleCluster/Define/Block/CascadingModule.rb', line 39

def cascading_module_extend( & runtime_block )
  return cluster_stack.module_extend( ::ModuleCluster::Define::Block::CascadingModule, __method__, runtime_block )
end

#cascading_module_include(&runtime_block) ⇒ Object

cascading_module_include #



31
32
33
# File 'lib/module-cluster/ModuleCluster/Define/Block/CascadingModule.rb', line 31

def cascading_module_include( & runtime_block )
  return cluster_stack.module_include( ::ModuleCluster::Define::Block::CascadingModule, __method__, runtime_block )
end

#cascading_module_include_or_extend(&runtime_block) ⇒ Object

cascading_module_include_or_extend #



47
48
49
50
51
# File 'lib/module-cluster/ModuleCluster/Define/Block/CascadingModule.rb', line 47

def cascading_module_include_or_extend( & runtime_block )
  include_set = cascading_module_include( & runtime_block )
  extend_set = cascading_module_extend( & runtime_block )
  return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( include_set, extend_set )
end

#cascading_prepend_module_extend(&runtime_block) ⇒ Object

cascading_prepend_module_extend #



65
66
67
# File 'lib/module-cluster/ModuleCluster/Define/Block/CascadingModule.rb', line 65

def cascading_prepend_module_extend( & runtime_block )
  return cluster_stack.prepend_module_extend( ::ModuleCluster::Define::Block::CascadingModule, __method__, runtime_block )
end

#cascading_prepend_module_include(&runtime_block) ⇒ Object

cascading_prepend_module_include #



57
58
59
# File 'lib/module-cluster/ModuleCluster/Define/Block/CascadingModule.rb', line 57

def cascading_prepend_module_include( & runtime_block )
  return cluster_stack.prepend_module_include( ::ModuleCluster::Define::Block::CascadingModule, __method__, runtime_block )
end

#cascading_prepend_module_include_or_extend(&runtime_block) ⇒ Object

cascading_prepend_module_include_or_extend #



73
74
75
76
77
# File 'lib/module-cluster/ModuleCluster/Define/Block/CascadingModule.rb', line 73

def cascading_prepend_module_include_or_extend( & runtime_block )
  include_set = cascading_prepend_module_include( & runtime_block )
  extend_set = cascading_prepend_module_extend( & runtime_block )
  return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( include_set, extend_set )
end