Releases: gkjpettet/roo
Version 3.0.2
New Features
- Added the
Nothing.to_number
getter (always returns0
)
Installation
The easiest way is to use Homebrew on the Mac or Scoop on Windows.
Downloads
macOS
Windows (64-bit)
Linux (x86 64-bit)
Linux (ARM 32-bit)
Version 3.0.1
Bug Fixes
- Can now set fields on native modules if the module implements the
RooNativeSettable
interface. - Various fixes to Roo's JSON parsing engine
- Local variables no longer shadow variables with the same name but a different case in an enclosing scope
New Features
- Added
HTTP.url_decode()
andHTTP.url_encode()
functions - Simplified error handling if you are embedding Roo in an existing Xojo app with the removal of four events from the
RooInterpreter
class and the addition of a newErrorOccurred
event
Full documentation is available at https://roolang.org.
Installation
The easiest way is to use Homebrew on the Mac or Scoop on Windows.
Downloads
Version 3.0.0
This is major new release. The interpreter has been completely rewritten from scratch. Roo is now entirely written in native Xojo code and requires no third party plugins. The language has not only changed significantly syntactically (indentation is now used instead of curly braces for block scoping, like Python) but many, many bugs have been fixed. Performance has been improved and new features have been added.
Full documentation is available at https://roolang.org.
Installation
The easiest way is to use Homebrew on the Mac or Scoop on Windows.
Downloads
Version 2.5.1
Improvements
- Greatly improved resilience of the parser. It will now correctly report syntax errors without getting stuck in an infinite loop of doom
- For classes that define a
to_text
getter to provide a text representation of the object - this is now honoured throughout the language (e.g: when concatenating with other objects)
Installation
The easiest way is to use Homebrew on the Mac or Scoop on Windows.
Downloads
Version 2.5.0
Improvements
- Semicolons are no longer required! You are free to continue to use them to separate multiple statements on the same line but your code will look prettier without them.
- Parentheses are now optional around the conditions of
if
constructs andwhile
loops 🎉. You can obviously use them to make your code easier to read if you wish. - Added a new
exit
keyword to allow breaking out ofif
constructs early - The scanner has been partially rewritten to be faster and more efficient
- The parser now handles more edge cases and panics less when things go wrong
- It's now possible to define the text representation used by the standard library
print()
function for your own classes. Just created a class method calledto_text
and return the text representation for your object - Added the
Hash.value(key)
method which returns the value of the specifiedkey
Installation
The easiest way is to use Homebrew on the Mac or Scoop on Windows.
Downloads
Version 2.4.1
Improvements
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
Installation
The easiest way is to use Homebrew on the Mac or Scoop on Windows.
Downloads
Version 2.4.0
New Features
- HTTP networking support added! This release introduces two new data types (the
Request
andResponse
objects) and theHTTP
module enabling Roo to now make HTTP requests - Added a new
JSON
module for parsing JSON strings to Roo data structures and for converting RooHash
objects to JSON strings
Improvements
- Added
Text.to_date
getter - Added
DateTime.day_name
getter - Added
DateTime.long_month
getter - Added
DateTime.short_month
getter
Installation
The easiest way is to use Homebrew on the Mac or Scoop on Windows.
Downloads
Version 2.3.1
Bug fixes
File.flush
now returnsNothing
like it should- Fixed a crash that could occur in
File.append()
Changes
- Renamed
FileUtils.pwd
toFileUtils.cwd
. Current working directory (cwd) feels more appropriate than pwd (print working directory).
Improvements
- Added
Text.define_utf8
andText.define_utf8!
getters - Added
FileUtils.cwd_path
getter
Installation
The easiest way is to use Homebrew on the Mac or Scoop on Windows.
Downloads
Version 2.3.0
Improvements
- New
DateTime
data type. As the name suggests, this adds extensive support for working with dates and times. - New
FileUtils
module. This module provides the following getters and methods for manipulatingFile
objects:FileUtils.copy(source, destination, overwrite)
FileUtils.delete(item)
FileUtils.mkdir(path)
FileUtils.move(source, destination, overwrite)
FileUtils.pwd
- Added many more getters and methods to the
File
data type
Installation
The easiest way is to use Homebrew on the Mac or Scoop on Windows.
Downloads
Version 2.2.0
Improvements
Require statement
Added a new require
statement. This finally adds the capability for Roo to include the contents of other scripts in a running script:
require "path/to/file"; # .roo extension is optional
The provided path
can be relative to the script file or an absolute path.
Installation
The easiest way is to use Homebrew on the Mac or Scoop on Windows.