module Opal::CliRunners
def self.[](name)
def self.[](name) @register[name.to_sym]&.call end
def self.[]=(name, runner)
- Private: -
def self.[]=(name, runner) warn "Overwriting Opal CLI runner: #{name}" if @register.key? name.to_sym @register[name.to_sym] = runner end
def self.alias_runner(new_name, old_name)
def self.alias_runner(new_name, old_name) self[new_name.to_sym] = -> { self[old_name.to_sym] } nil end
def self.register_runner(name, runner, path = nil)
-
path
(nil, String
) -- a path for setting up autoload on the constant -
runner
(Symbol
) -- a constant name that once autoloaded will point to -
runner
(#call
) -- a callable object that will act as the "runner" -
name
(Symbol
) -- the name at which the runner can be reached
def self.register_runner(name, runner, path = nil) autoload runner, path if path @runners.push(runner.to_s) if runner.respond_to? :call self[name] = -> { runner } else self[name] = -> { const_get(runner) } end nil end
def self.registered_runners
def self.registered_runners @runners end
def self.to_h
def self.to_h @register end