Module: ModuleCluster::Define::Block::CascadingClass

Extended by:
ExtendForCascade
Includes:
CascadeFeatures::ClusterStack, Subclass, Suspend::WithoutHooks
Included in:
CascadingClassOrModule
Defined in:
lib/module-cluster.rb,
lib/module-cluster/ModuleCluster/Define/Block/CascadingClass.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/CascadingClass.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/CascadingClass.rb', line 23

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

Instance Method Details

#cascading_class_extend(&runtime_block) ⇒ Object

cascading_class_extend #



40
41
42
43
# File 'lib/module-cluster/ModuleCluster/Define/Block/CascadingClass.rb', line 40

def cascading_class_extend( & runtime_block )
  subclass( & runtime_block )
  return cluster_stack.class_extend( ::ModuleCluster::Define::Block::CascadingClass, __method__, runtime_block )
end

#cascading_class_include(&runtime_block) ⇒ Object

cascading_class_include #



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

def cascading_class_include( & runtime_block )
  subclass( & runtime_block )
  return cluster_stack.class_include( ::ModuleCluster::Define::Block::CascadingClass, __method__, runtime_block )
end

#cascading_class_include_or_extend(&runtime_block) ⇒ Object

cascading_class_include_or_extend #



49
50
51
52
53
# File 'lib/module-cluster/ModuleCluster/Define/Block/CascadingClass.rb', line 49

def cascading_class_include_or_extend( & runtime_block )
  include_set = cascading_class_include( & runtime_block )
  extend_set = cascading_class_extend( & runtime_block )
  return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( include_set, extend_set )
end

#cascading_prepend_class_extend(&runtime_block) ⇒ Object

cascading_prepend_class_extend #



68
69
70
71
# File 'lib/module-cluster/ModuleCluster/Define/Block/CascadingClass.rb', line 68

def cascading_prepend_class_extend( & runtime_block )
  subclass( & runtime_block )
  return cluster_stack.prepend_class_extend( ::ModuleCluster::Define::Block::CascadingClass, __method__, runtime_block )
end

#cascading_prepend_class_include(&runtime_block) ⇒ Object

cascading_prepend_class_include #



59
60
61
62
# File 'lib/module-cluster/ModuleCluster/Define/Block/CascadingClass.rb', line 59

def cascading_prepend_class_include( & runtime_block )
  subclass( & runtime_block )
  return cluster_stack.prepend_class_include( ::ModuleCluster::Define::Block::CascadingClass, __method__, runtime_block )
end

#cascading_prepend_class_include_or_extend(&runtime_block) ⇒ Object

cascading_prepend_class_include_or_extend #



77
78
79
80
81
# File 'lib/module-cluster/ModuleCluster/Define/Block/CascadingClass.rb', line 77

def cascading_prepend_class_include_or_extend( & runtime_block )
  include_set = cascading_prepend_class_include( & runtime_block )
  extend_set = cascading_prepend_class_extend( & runtime_block )
  return ::ModuleCluster::ClusterStack::Set::MultiSetProxy.new( include_set, extend_set )
end