As per a suggestion by @Kem Tekinay, I’ve decided to create a single thread that I will use to make announcements about Roo.
What is Roo?
Roo is a free, open source, object-orientated interpreted scripting language written in Xojo. Whilst it can be used from the command line to run scripts or as a REPL it is primarily designed to be a replacement for Xojoscript. It’s super easy to integrate it into your apps and is far more powerful than Xojoscript. It has native support for dictionaries (Hash objects in Roo) and networking and provides a plethora of convenience methods for working with text, dates, etc.
Supported platforms
Roo works on all desktop platforms (macOS, Windows, Linux x86 and ARM) and in console apps. It will not work on iOS for many reasons, mostly because Roo relies on a number of the Monkeybread plugins (which don’t work on iOS) but also internally it uses a lot of the classic framework which is also not supported on iOS.
Latest version
The latest version is 2.4.1. Download it from GitHub.
Latest version release notes
-
Request
objects now have a default HTTP method ofGET
- Added the
Roo.NetworkingEnabled
property which (ifFalse
) will disable Roo’s ability to access the network and raise aRoo.RuntimeError
exception. It defaults toTrue
- Added the
DateTime.long_month
getter - Added the
DateTime.day_name
getter - Added the
DateTime.meridiem
getter - Added the
DateTime.short_month
getter - Added the
DateTime.time
getter - Added the
DateTime.to_http_header
getter - Added the
DateTime.two_digit_hour
getter - Added the
DateTime.two_digit_minute
getter - Added the
DateTime.two_digit_second
getter - Added the
Text.to_date
getter - It’s now possible to store arbitrary data on an interpreter instance with the
Roo.Interpreter.Custom
dictionary property
Learning Roo
Extensive documentation is provided at https://roolang.org.
There is even a Dash docset for Roo.
I’ve also written a GUI app for prototyping Roo scripts which features syntax colouring. It’s open source and can be found on GitHub. It’s worth checking out the commit messages in this repo because I actually develop new Roo code in this repo and then copy the Roo module into the main repo when a new version is done. The IDE works great on a Mac. Your mileage may vary on other platforms.