Johnson 1.2.0 Released

johnson version 1.2.0 has been released!

Johnson wraps JavaScript in a loving Ruby embrace. It embeds the
Mozilla SpiderMonkey JavaScript runtime as a C extension. This release
squashes many, many bugs and segfaults.

Changes:

1.2.0 / 2010-01-25

  • Add an API for registering custom conversions.
  • Subclass Runtime, don’t delegate.
  • Make builds a bit more robust, especially on Snow Leopard.
  • Handle UTF-8 conversion better. Also, treat JS strings as UTF-16.
  • Add small bits of API doco.
  • Plug tons of root leaks.
  • Make Function.prototype.apply handle Ruby arrays.
  • Remove Rails EJS support, it was a joke to begin with.
  • Whitespace, formatting, and organization cleanups.

On Tue, Jan 26, 2010 at 2:58 AM, John B. [email protected]
wrote:

johnson version 1.2.0 has been released!

Johnson wraps JavaScript in a loving Ruby embrace. It embeds the
Mozilla SpiderMonkey JavaScript runtime as a C extension. This release
squashes many, many bugs and segfaults.

Could you talk about some of the potential use cases for this?

martin

Automated JavaScript testing through existing Ruby interfaces, e.g.
RSpec.

James

Johnson wraps JavaScript in a loving Ruby embrace. It embeds the
Mozilla SpiderMonkey JavaScript runtime as a C extension. This release
squashes many, many bugs and segfaults.

Could you talk about some of the potential use cases for this?

martin

blue-ridge is an example. It’s a packing of a several projects that
provides an rspec-like environment for JS. It currently uses Rhino, the
Java JS interpreter, but there are efforts underway to make it work with
Johnson/SpiderMoneky. That will require the next version of Johnson,
tentatively, 2.0.0, but that’s been under development for quite some
time so there should be a prereleases of it before too long.

I do a lot of JS testing, using Johnson and other dependent gems.
There’s the env-js project and the envjs gem that provide a browser
environment, e.g., a window object, based on Johnson. Then there’s jazrb
which combines the Jasmine (rspec-like) BDD framework with envjs.
jslintrb is a Johnson-based ruby driver for Crockford’s jslint. And I
have a bastardized version of watchr that provides autotest-like
environment for jazrb and jslint … (and haml and sass …)

FWIW, none of this is integrated with Rails at this point …