Skip to content

Instantly share code, notes, and snippets.

@benmills
Created August 28, 2011 04:29
Show Gist options
  • Save benmills/1176246 to your computer and use it in GitHub Desktop.
Save benmills/1176246 to your computer and use it in GitHub Desktop.
{exec} = require 'child_process'
execRuby = (code, callback) ->
escapedCode = code.replace(/\\n/g, "\\n").replace(/"/g, "\\\"")
exec "ruby -e \"#{escapedCode}\"", (err, stdout, stderr) ->
callback(err, stdout)
execJS = (code, callback) ->
escapedCode = code.replace(/\\n/g, "\\n").replace(/"/g, "\\\"")
exec "node -e \"#{escapedCode}\"", (err, stdout, stderr) ->
callback(err, stdout)
execPython = (code, callback) ->
escapedCode = code.replace(/\\n/g, "\\n").replace(/"/g, "\\\"")
exec "python -c \"#{escapedCode}\"", (err, stdout, stderr) ->
callback(err, stdout)
execCoffee = (code, callback) ->
escapedCode = code.replace(/\\n/g, "\\n").replace(/"/g, "\\\"")
exec "coffee -e \"#{escapedCode}\"", (err, stdout, stderr) ->
callback(err, stdout)
rubycode = '''
a = "Ben"
b = 'Mills'
puts "#{a} #{b}"
'''
jscode = '''
a = "ben";
b = 'mills';
console.log(a + " " + b);
'''
pycode = '''
a = "ben";
b = 'mills';
print a + " " + b
'''
cscode = '''
a = "ben";
b = 'mills';
console.log "#{a} #{b}"
console.log process.cwd()
'''
execRuby rubycode, (err, output) ->
console.log output
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment