ExecJS
======

ExecJS lets you run JavaScript code from Ruby. It automatically picks
the best runtime available to evaluate your JavaScript program, then
returns the result to you as a Ruby object.

ExecJS supports these runtimes:

* [therubyracer](https://github.com/cowboyd/therubyracer) - Google V8
  embedded within Ruby
* [therubyrhino](https://github.com/cowboyd/therubyrhino) - Mozilla
  Rhino embedded within JRuby
* [Node.js](http://nodejs.org/)
* Apple JavaScriptCore - Included with Mac OS X
* [Microsoft Windows Script Host](http://msdn.microsoft.com/en-us/library/9bbdkx3k.aspx) (JScript)

A short example:

    require "execjs"
    ExecJS.eval "'red yellow blue'.split(' ')"
    # => ["red", "yellow", "blue"]

A longer example, demonstrating how to invoke the CoffeeScript compiler:

    require "execjs"
    require "open-uri"
    source = open("http://jashkenas.github.com/coffee-script/extras/coffee-script.js").read

    context = ExecJS.compile(source)
    context.call("CoffeeScript.compile", "square = (x) -> x * x", :bare => true)
    # => "var square;\nsquare = function(x) {\n  return x * x;\n};"

# Installation

    $ gem install execjs

# License

Copyright (c) 2011 Sam Stephenson and Josh Peek.

Released under the MIT license. See `LICENSE` for details.
