# Idiom for dynamic loading of an unknown class from a known f

**URL:** <https://www.ruby-forum.com/t/idiom-for-dynamic-loading-of-an-unknown-class-from-a-known-f/85171>\
**Category:** Ruby\
**Created:** [February 10, 2007, 10:30pm UTC](https://www.ruby-forum.com/t/idiom-for-dynamic-loading-of-an-unknown-class-from-a-known-f/85171 "2007-02-10T22:30:58Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Nasir\_K](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/838e76/32.png) [@Nasir\_K](https://www.ruby-forum.com/u/Nasir_K)\
**Post date:** [February 10, 2007, 10:30pm UTC](https://www.ruby-forum.com/t/idiom-for-dynamic-loading-of-an-unknown-class-from-a-known-f/85171/1 "2007-02-10T22:30:58Z")

</div>

I need to load a class at runtime, whose name I do not know in advance,  
but  
all I know is a file name.  
Say “a.rb” which is

class A  
…  
end

So I want to do something like (pseudo code)

- load a.rb (this will create the class object for A)
- Somehow access constant “A” and invoke “A.new”

I can think of a few hacks but none of them are elegant.  
Is there an idiom for it?

TIA

---

<div class="post-metadata">

**Author:** ![Nasir\_K](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/838e76/32.png) [@Nasir\_K](https://www.ruby-forum.com/u/Nasir_K)\
**Post date:** [February 10, 2007, 10:53pm UTC](https://www.ruby-forum.com/t/idiom-for-dynamic-loading-of-an-unknown-class-from-a-known-f/85171/2 "2007-02-10T22:53:00Z")

</div>

On Sun, 11 Feb 2007, Nasir K. wrote:

> - load a.rb (this will create the class object for A)
> - Somehow access constant “A” and invoke “A.new”
> 
> I can think of a few hacks but none of them are elegant.  
> Is there an idiom for it?

dynaload does **exactly** this.

gem install dynaload

-a

---

<div class="post-metadata">

**Author:** ![Nasir\_K](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/838e76/32.png) [@Nasir\_K](https://www.ruby-forum.com/u/Nasir_K)\
**Post date:** [February 10, 2007, 10:57pm UTC](https://www.ruby-forum.com/t/idiom-for-dynamic-loading-of-an-unknown-class-from-a-known-f/85171/3 "2007-02-10T22:57:04Z")

</div>

Nasir K. wrote:

> - load a.rb (this will create the class object for A)
> - Somehow access constant “A” and invoke “A.new”
> 
> I can think of a few hacks but none of them are elegant.  
> Is there an idiom for it?

# [Script](http://redshift.sourceforge.net/script)

require ‘script’  
script = Script.load “a.rb”  
script::A.new
