1
0
Fork 0
mirror of https://github.com/rails/execjs synced 2023-03-27 23:21:20 -04:00
Run JavaScript code from Ruby
Find a file
Joshua Peek 686692e0db rbx 19 isn't on travis anymore
rbx-d19 is not installed
2014-05-19 16:55:00 -05:00
lib Remove test arg/match support 2014-05-19 16:38:28 -05:00
test Fix coffee-script url 2014-05-19 09:48:12 -04:00
.gitignore Add Gemfile 2011-06-07 16:05:18 -05:00
.travis.yml rbx 19 isn't on travis anymore 2014-05-19 16:55:00 -05:00
CONTRIBUTING.md Start on contributing guidelines 2014-05-19 09:59:29 -04:00
execjs.gemspec No multi_json gem 2013-08-20 18:58:55 -05:00
Gemfile Skip testing with json gem 2013-09-27 15:15:05 -04:00
LICENSE Update copyright year 2014-05-19 09:56:39 -04:00
MAINTAINING.md Add maintaining guidelines 2014-05-19 10:02:13 -04:00
Rakefile Add deprecated runtime flag 2012-05-20 14:25:13 -05:00
README.md Make question header smaller 2014-05-19 09:57:51 -04:00

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:

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://coffeescript.org/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

FAQ

Why can't I use CommonJS require() inside ExecJS?

ExecJS provides a lowest common denominator interface to any JavaScript runtime. Use ExecJS when it doesn't matter which JavaScript interpreter your code runs in. If you want to access the Node API, you should check another library like commonjs.rb designed to provide a consistent interface.

License

Copyright (c) 2014 Sam Stephenson and Josh Peek.

Released under the MIT license. See LICENSE for details.