kal 40 Posted March 16, 2012 (edited) What is a REPL? REPL stands for read-evaluate-print-loop it's a simple way to interact with a programming environment. You type in lines of code in a shell or GUI (read), the code is evaluated dynamically (evaluate), and then return value of the code is printed on the screen (print) and then this process loops until the user quits (loop). What is an Alex? Everyone knows Alex the greatest hero ever! It's also the name of this script because I needed a name and this was the first thing that popped in to my head. Alex is sort of an improved version of the Interactive Console script/system I made (there's a tutorial in the tutorial forum). For some reason I figured that you couldn't get user input from the RGSS Console (you can!) and when I found that out I started working on this script. How does it work? Take look at this demo video I made that shows things you can do with Alex: Features Plug-n-play Indentation support Start from any point in script editor Start from an event script command Start anywhere by pressing a button Create methods as shortcuts for common strings you use a lot Clear the console window with a command (cls) Can define methods or even classes and module from within an Alex session Usage First you should now what a binding in Ruby is. A binding is a context that you can get from some point in your program and it encapsulates the value of self, all instance variabels and methods at that point. These can later be accessed through the binding object. You can read more about binding in Ruby here: http://ruby-doc.org/....3/Binding.html To start an Alex session call the alex method on a binidng. You can get the current Binding instance by calling Kernel#binding. Example: binding.alex This will get the current binding and start an alex session. Now all the code you type in will be evaluated in the context of the binding, so you can access all instance variables, methods etc that are available to the binding. You can put that line anywhere in the editor or in an event script call. It will start an Alex session at the point in the program where the line is executed and you will be able to access everything you normally would be able to access at that point in the Alex session. When you start a session the game will pause (don't worry if it becomes unresponsive, this is normal) and you can type in code in the Console that will then be evaluated, and the return value is printed. To stop an Alex session and return to the game, type in exit. You can then switch back to the game window and the game will continue. To clear the Console screen type in cls. When you are in an Alex session it is useful to be able to call instance_eval on object (instance_eval allows you to execute code form outside an object as if you were inside the object). Therefore Alex provides shortcut to instance eval called 'ie'. Example: 1.ie("self") => 1 Another thing you can do in Alex is define common methods for things you want to use frequently in Alex session so you don't have to type them in every time. You can put those method in the Common module. Have a look there to see some examples. You can also start an Alex session anywhere when playing the game game by pressing a predefined key. This will start a session with the current binding as the context. The default key is D but this can be changed in the CONFIG module. Download https://gist.github.com/2044957 Edited March 16, 2012 by Kal 2 Share this post Link to post Share on other sites
Nelderson 55 Posted March 16, 2012 YOU ARE AWESOME!!!!!! *We are not worthy....OTL 1 Share this post Link to post Share on other sites
Pikalyze 4 Posted March 16, 2012 Yay! This will be great for testing out stuff. Share this post Link to post Share on other sites
Moon 9 Posted March 16, 2012 Hey, I love this! I made something similar too. This new RGSS3 Console is awesome! Share this post Link to post Share on other sites