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.
on 2007-01-10 18:51
on 2007-01-10 19:24
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.
on 2007-01-10 19:25
On 1/10/07, Daniel S. <email@example.com> 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