module ExecJS::Runtimes

Constants

Disabled
Duktape
JavaScriptCore
MiniRacer
Node
RubyRacer
RubyRhino
SpiderMonkey
V8

Public Class Methods

autodetect() click to toggle source
# File lib/execjs/runtimes.rb, line 49
def self.autodetect
  from_environment || best_available ||
    raise(RuntimeUnavailable, "Could not find a JavaScript runtime. " +
      "See https://github.com/rails/execjs for a list of available runtimes.")
end
best_available() click to toggle source
# File lib/execjs/runtimes.rb, line 55
def self.best_available
  runtimes.reject(&:deprecated?).find(&:available?)
end
from_environment() click to toggle source
# File lib/execjs/runtimes.rb, line 59
def self.from_environment
  if name = ENV["EXECJS_RUNTIME"]
    raise RuntimeUnavailable, "#{name} runtime is not defined" unless const_defined?(name)
    runtime = const_get(name)

    raise RuntimeUnavailable, "#{runtime.name} runtime is not available on this system" unless runtime.available?
    runtime
  end
end
names() click to toggle source
# File lib/execjs/runtimes.rb, line 69
def self.names
  @names ||= constants.inject({}) { |h, name| h.merge(const_get(name) => name) }.values
end
runtimes() click to toggle source
# File lib/execjs/runtimes.rb, line 73
def self.runtimes
  @runtimes ||= [
    RubyRacer,
    RubyRhino,
    Duktape,
    MiniRacer,
    Node,
    JavaScriptCore,
    SpiderMonkey,
    V8
  ]
end