Method: Pancake::Hooks::InheritableInnerClasses#inheritable_inner_classes

Defined in:
lib/pancake/hooks/inheritable_inner_classes.rb

#inheritable_inner_classes(*classes) ⇒ Object

Declare inner classes to be inherited when the outer class in inherited The best way to show this is by example:

This provides a more organic inheritance where the child gets their own version of the inner class which is actually inherited from the parents inner class. The inheritance chain remains intact.

Examples:

class Foo
  inheritable_inner_class :Bar

  class Bar
  end
end

class Baz < Foo
  # When Foo is inherited, the following occurs
  class Bar < Foo::Bar; end
end

Author:

  • Daniel Neighman

Since:

  • 0.1.0



35
36
37
38
39
40
41
42
# File 'lib/pancake/hooks/inheritable_inner_classes.rb', line 35

def inheritable_inner_classes(*classes)
  _inhertiable_inner_classes
  unless classes.empty?
    _inhertiable_inner_classes << classes
    _inhertiable_inner_classes.flatten!
  end
  _inhertiable_inner_classes
end