module ExecJS::Runtimes
def self.autodetect
def self.autodetect from_environment || best_available || raise(RuntimeUnavailable, "Could not find a JavaScript runtime. " + "See https://github.com/sstephenson/execjs for a list of available runtimes.") end
def self.best_available
def self.best_available runtimes.find(&:available?) end
def self.from_environment
def self.from_environment if name = ENV["EXECJS_RUNTIME"] if runtime = const_get(name) if runtime.available? runtime if runtime.available? else raise RuntimeUnavailable, "#{name} runtime is not available on this system" end elsif !name.empty? raise RuntimeUnavailable, "#{name} runtime is not defined" end end end
def self.names
def self.names constants end
def self.runtimes
def self.runtimes @runtimes ||= [ RubyRacer, RubyRhino, Mustang, Node, JavaScriptCore, Spidermonkey, JScript ] end