1.0.0
We glad to announce first major release! It indicates both stability we achieved over the years and the initial roadmap completion.
Highlights
-
Text rewriters.
We made experimenting with Ruby syntax as simple as possible by introducing text rewriters. No need to manipulate ASTs or write your own parser. Text rewriters allow you manipulate Ruby code the way you prefer (regexps, strings scanners, etc.). You can also use our new parse combinator library, Paco, to have more control over transformations. Read more in the documentation.
-
Robust runtime transpiling with require-hooks.
We extracted functionality to hijack Ruby's require/load mechanism into a standalone gem, require-hooks. It passes most of the Ruby Spec and provides a universal interface to interfere with code loading for major Ruby implementations.
Features
- New rewriters:
- Added
itblock parameter support from Ruby 3.4 (proc { it }.call("ruby-next") == "ruby-next"). - Added anonymous rest and keyword rest arguments forwarding support (
def foo(*, **); bar(*, **) end).
- Added
- Core APIs:
- Added Data backport.
- Added
MatchData#deconstruct,MatchData#deconstruct_keys,Time#deconstruct_keys
Read more in our changelog.
P.S. Happy holidays ๐