Forum: Ruby Dynamically load methods from external source

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
35523c3eb58d186f5c040f57a23ee8a6?d=identicon&s=25 Daniel Shackelford (Guest)
on 2007-01-10 17:51
(Received via mailing list)
I know this sounds like it could be a very bad thing to do, but I was
wondering if there is a way to load methods into an already running app
from an external source (database/file).  I am building an app that
would load needed code snippets for a given task, but each time it runs
it will not need all the snippets, just certain ones.  I know that I can
store the code as text in the database/file, but will I have to execute
it externally (via system 'ruby file.rb arg1 arg2'), or can I load and
execute it internally (possibly in a separate thread)?  I can think of
all sorts of reasons why to NOT do this, but still, there is curiosity
isn't there..

I am thinking that somehow Rails does something like this with it's
controllers, but heck, that is a lot of code to sort through.
Cba04c91f828f8985d3616ec5b6b39af?d=identicon&s=25 Dr. D (Guest)
on 2007-01-10 18:24
(Received via mailing list)
I have a long running ruby process which does just this.  There's a drb
port open on the process.  If a method is changed, I open an irb
session, connect to drb, and run "load" on the remote process to reload
the file containing the changed methods.  To reduce the typing I have
an rload method in the object exposed by drb.
97550977337c9f0a0e1a9553e55bfaa0?d=identicon&s=25 Jan Svitok (Guest)
on 2007-01-10 18:25
(Received via mailing list)
On 1/10/07, Daniel Shackelford <dshackel@arbor.edu> wrote:
>
> I am thinking that somehow Rails does something like this with it's
> controllers, but heck, that is a lot of code to sort through.

use Kernel#eval for loading* code from string,
load/require to load code from file.
(require will load just once, load will more times)

loading = load and execute
This topic is locked and can not be replied to.