|New Rubygem released||Christopher Bertels||3/8/11 11:52 PM|
I pushed a new Rubygem today, see: https://rubygems.org/gems/fancy
You can install it via: $ rbx -S gem install fancy
This isn't a full official release but more of a snapshot release that's easily installable.
Mostly to get some feedback, if people are interested.
New features that are in that gem:
- Support for calling out to Fancy from within Ruby: https://gist.github.com/861079
The syntax isn't optimal. Ideally I'd want to use Ruby Hashes for emulating the keyword messages, but
Hashes aren't ordered in Ruby 1.8 (which Rubinius is compatible with at the moment). Once Rubinius has
full Ruby 1.9 support, we can even move to the new Hash syntax. Also, Ruby 1.9 Hashes are ordered.
Send 'message' to obj asynchronously and return a Future object:
f = obj @ message
To retrieve the value of the future, send it the 'value' message:
This will block the current Thread, if the async message hasn't finished computing.
- Pure async message sends:
obj @@ message
This simply returns nil immediately and schedules the message send to be processed asynchronously.
This is also the case for Futures, which get currently scheduled in a thread pool.
- Lots of documentation additions to the standard library
- Bugfixes to the pygments lexer (for syntax highlighting)
- A new page of all the standard library source files syntax highlighted (as GitHub doesn't have support for that yet).
- Support for string interpolation with format-strings: "foo-%s-%s" % ("bar, "baz") # => "foo-bar-baz"
- Added support for Fibers, including some bugfixes to Rubinius itself (mostly JIT related) to make those work in Fancy
- Threadpool & Fiberpool classes
- And much more I probably forgot.
I'm preparing things for the next major release. Mostly documentation and fixing bugs I come across.
I'm also planning on writing up some of the development details in a blog post soon.
If you're willing to try out the latest version, I'd like to hear some feedback.
Also let me know if you're having any issues with installation etc.