Hi. Im looking for a framework or some other means of un-/loading ruby code into a live interpreter. Im thinking along the lines of TCLs interp command here, which instanciates a new slave interpreter completely unrelated to the main one, apart from a user-defined interface procs/methods. The slave interpreter even can source other files and load binary libs without affecting the main interpreter. I guess it can be done via Threads and a sufficent high $SAFE value, though that would still leave the possibility of polluting the namespace of other threads, wouldn't it? Reason for all this is a module system that takes class code from files in order to extend functionality of the main program. Though i'd settle for a working way of unloading cleanly without leaving stuff in namespace (if the module author adheres to set interface regulations, of course). Thanks.
on 2006-03-08 23:46
on 2006-03-09 00:04
Bernhard, I am working on such a "sandbox" for the Pandora project. It's not done, yet, but when it does, it will allow "client side" Ruby programming through a browser using an object-oriented application framework. The Pandora wiki engine is pretty solid, and you can download here: http://pandora.rubyveil.com/pandora/Pandora/Projec... Best regards, Julian I. Kamil <firstname.lastname@example.org> http://pandora.rubyveil.com/ - Document publishing and web application framework http://books.rubyveil.com/ - The Ruby Bookshelf
on 2006-03-09 00:41
2006/3/8, Bernhard 'elven' Stoeckner <email@example.com>: > that would still leave the possibility of polluting the namespace of other > threads, wouldn't it? > > Reason for all this is a module system that takes class code from files in > order to extend functionality of the main program. Though i'd settle for a > working way of unloading cleanly without leaving stuff in namespace (if the > module author adheres to set interface regulations, of course). I think this is not possible using plain ruby because you can always access constants in gobal scope. If you control your plugins you can use anonymous classes that register themselves somewhere. If the registration is deleted their code is no longer accessible. Other than that I guess you'll need to modify the interpreter in C code - or create multiple interpreters. HTH Kind regards robert
on 2006-03-09 01:05
Robert K. scribbled on Wednesday 08 Mar 2006 23:40: > Kind regards > > robert > > -- > Have a look: http://www.flickr.com/photos/fussel-foto/ Thought so. Well, I guess I'll fiddle around with a TCL-like-approach involving a C base framework managing multiple ruby interpreters sometime soon. Gut Nacht :)