# Class.descendant\_of?

**URL:** <https://www.ruby-forum.com/t/class-descendant-of/147553>\
**Category:** Ruby\
**Created:** [September 3, 2008, 3:19am UTC](https://www.ruby-forum.com/t/class-descendant-of/147553 "2008-09-03T03:19:04Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![benjohnson](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/3ec8ea/32.png) [@benjohnson](https://www.ruby-forum.com/u/benjohnson)\
**Post date:** [September 3, 2008, 3:19am UTC](https://www.ruby-forum.com/t/class-descendant-of/147553/1 "2008-09-03T03:19:04Z")

</div>

Noob question:

class A; end  
class B \< A; end

B.kind\_of?(A)

Is there a method that will return true if the class is a descendant of  
that class?

Thanks for your help.

---

<div class="post-metadata">

**Author:** ![benjohnson](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/3ec8ea/32.png) [@benjohnson](https://www.ruby-forum.com/u/benjohnson)\
**Post date:** [September 3, 2008, 3:38am UTC](https://www.ruby-forum.com/t/class-descendant-of/147553/2 "2008-09-03T03:38:01Z")

</div>

On Tue, Sep 2, 2008 at 8:14 PM, Ben J. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Thanks for your help.  
> class A; end  
> class B \< A; end  
> B.ancestors.include?(A)  
> =\> true

Todd

---

<div class="post-metadata">

**Author:** ![benjohnson](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/3ec8ea/32.png) [@benjohnson](https://www.ruby-forum.com/u/benjohnson)\
**Post date:** [September 3, 2008, 3:55am UTC](https://www.ruby-forum.com/t/class-descendant-of/147553/3 "2008-09-03T03:55:36Z")

</div>

2008/9/3 Ben J. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Noob question:
> 
> class A; end  
> class B \< A; end
> 
> B.kind\_of?(A)
> 
> Is there a method that will return true if the class is a descendant of  
> that class?

class A; end  
class B \< A; end

B \< A  
=\> true

Regards,

Park H.

---

<div class="post-metadata">

**Author:** ![benjohnson](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/3ec8ea/32.png) [@benjohnson](https://www.ruby-forum.com/u/benjohnson)\
**Post date:** [September 3, 2008, 4:11am UTC](https://www.ruby-forum.com/t/class-descendant-of/147553/4 "2008-09-03T04:11:59Z")

</div>

From: Ben J. [[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)]

# Is there a method that will return true if the class is a

# descendant of that class?

descendant is quite a generic term 😉

compare,

B.ancestors.map {|b| [b, B \< b]}  
#=\> [[B, false], [A, true], [Object, true], [Kernel, true]]

B.ancestors.map {|b| [b, B.superclass == b]}  
#=\> [[B, false], [A, true], [Object, false], [Kernel, false]]

kind regards -botp
