top of page

Home

Welcome, RubinSystem is a ruby app environment. It supports

multi-instance startups with multiple configs and setups, and manages your apps code, data and libraries.
 

defaultpage.JPG

The system comes with an 'eval shell', it evaluates input in either the system or other contexts. It can be configured to autostart like this, SYSTEM.config(3,true). Weather you have programs already running or not and if they are on threads or have returned flow control will determine weather the system can start the shell after startup. In that case you would make a system call from your app to start the system shell when appropriate, like this SYSTEM.shell.start .

​

To spawn another rubin system just use SYSTEM.instance.pop .

multicapture.JPG

If you want to see all the instances of an installation you have launched, use SYSTEM.instance.locals?

You have a controller component you can call with SYSTEM.con,  use SYSTEM.con.dir to get and set the network directory.
If a valid network directory is configured, controller will create an eval binding and accept input through this directory.
Running rubin instances can have a controller point to the same network directory, instances from different installs or on different network locations can interact this way.

You can see all controllers linked to the same directory by calling SYSTEM.con.members? on one of them. You can write script to be evaluated by one of them using SYSTEM.con.write("instance id","script"), you can even hold the output of an instance by calling SYSTEM.con.request("instance id","script"). The call writes then waits for output to come back then fetches and returns it. The controller network directory uses system config by default, index 7 CtrlNetDir. You can change this before or after startup.

​

Controller network directories can be host network shared. Right now you have to do this your self in Windows by right clicking the folder and going to properties where you will find sharing option. This allows controllers to be configured to directories anywhere on your local network.

​

See a nice print out of your system config by calling SYSTEM.config? Keep in mind this prints to the console and doesn't return data. To get config data you can call SYSTEM.config, you will get an array of config item names and values. You can call config like this too: i.e.  SYSTEM.config(7)  or  SYSTEM.config("CtrlNetDir") to get an items value.
To set a value just add the value as  the second argument. i.e. SYSTEM.config(1,true) .

config.JPG

You have SYSTEM.load_config and SYSTEM.save_config , which will load/save the default config file named config.cfg .
If you pass a filename or path you can bypass the default file and load or save elsewhere. You can save and load system config at anytime, keep in mind autostart config items will be applied when you restart, you can call SYSTEM.restart or SYSTEM.shutdown to run those dialogs, you can bypass them like this: SYSTEM.restart("F").

When the system starts up before loading defualt config, it will check for preconfig files, there may be multiple numbered preconfig files i.e. 'preconfig1.cfg'. The system will read and delete the lowest numbered preconfig file instead.

Config mostly tells the system instance what classes and definitions to load, as well as ruby gems and startup apps and/or scripts.

​

Finally, you have SYSTEM.run("app") and SYSTEM.runs("script"). Some scripts may be external and require another session, they will specify that with an extension, i.e. '.ext.rb'. You can also use SYSTEM.apps? and SYSTEM.scripts? to see what you can run. If an app returns @app after eval it is added to @apps which you can get with SYSTEM.apps.get .

​

Read more about the system components and features in documentation.

bottom of page