# Include\_class,how to define it?

**URL:** <https://www.ruby-forum.com/t/include-class-how-to-define-it/108133>\
**Category:** Ruby\
**Created:** [June 29, 2007, 9:31am UTC](https://www.ruby-forum.com/t/include-class-how-to-define-it/108133 "2007-06-29T09:31:52Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![gpygood](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/67e7ee/32.png) [@gpygood](https://www.ruby-forum.com/u/gpygood)\
**Post date:** [June 29, 2007, 9:31am UTC](https://www.ruby-forum.com/t/include-class-how-to-define-it/108133/1 "2007-06-29T09:31:52Z")

</div>

Hey,I like ruby’s mixin with “include” method,now I want to  
include\_class,  
but,how to define it?  
thanks  
class Module  
def include\_class(klass)  
end  
end

class Foo  
def foo  
end  
end

class Bar  
include\_class Foo  
end

Bar.new.foo

---

<div class="post-metadata">

**Author:** ![gpygood](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/67e7ee/32.png) [@gpygood](https://www.ruby-forum.com/u/gpygood)\
**Post date:** [June 29, 2007, 9:53am UTC](https://www.ruby-forum.com/t/include-class-how-to-define-it/108133/2 "2007-06-29T09:53:49Z")

</div>

On 6/29/07, gz zz [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> def foo

That’s called subclassing, deriving or inheritance.

Just do

class Bar \< Foo  
end

Bar.new.foo

Note that you can derive from one class only. All others have to be  
(included) modules.

J.

---

<div class="post-metadata">

**Author:** ![gpygood](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/67e7ee/32.png) [@gpygood](https://www.ruby-forum.com/u/gpygood)\
**Post date:** [June 29, 2007, 10:34am UTC](https://www.ruby-forum.com/t/include-class-how-to-define-it/108133/3 "2007-06-29T10:34:11Z")

</div>

If we can define a class method called “source” that can get class’s  
source ,then  
include\_class method will be defined

class Foo  
include Enumerable  
def foo  
end  
end

Foo.source #=\>

# include Enumerable

# def foo

# end
