# How can I create a ruby class in runtime

**URL:** <https://www.ruby-forum.com/t/how-can-i-create-a-ruby-class-in-runtime/74546>\
**Category:** Ruby\
**Created:** [December 23, 2005, 9:25pm UTC](https://www.ruby-forum.com/t/how-can-i-create-a-ruby-class-in-runtime/74546 "2005-12-23T21:25:00Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [December 23, 2005, 9:25pm UTC](https://www.ruby-forum.com/t/how-can-i-create-a-ruby-class-in-runtime/74546/1 "2005-12-23T21:25:00Z")

</div>

Hi,

Does anyone know how to create a ruby class in runtime?

ex:  
class Parent  
def…  
def…  
end

in runtime, we want to create a class “child” inherited from “parent”,  
it is possible?

thanks you very much

sayoyo

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [December 23, 2005, 9:31pm UTC](https://www.ruby-forum.com/t/how-can-i-create-a-ruby-class-in-runtime/74546/2 "2005-12-23T21:31:04Z")

</div>

removed\_email\_address@domain.invalid wrote:

> in runtime, we want to create a class “child” inherited from “parent”,  
> it is possible?

Yup, it is:

child = Class.new(parent) do  
def method(arg)  
…  
end

define\_method(dynamic\_name) do |arg|  
…  
end

# There’s a gotcha, though:

# Constant = 5 doesn’t work as expected. Use this instead:

const\_set(:Constant, 5)  
end

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [December 23, 2005, 9:34pm UTC](https://www.ruby-forum.com/t/how-can-i-create-a-ruby-class-in-runtime/74546/3 "2005-12-23T21:34:04Z")

</div>

removed\_email\_address@domain.invalid wrote:

> in runtime, we want to create a class “child” inherited from “parent”,  
> it is possible?

klass = Class.new Parent
