module Opal::CliRunners

‘Opal::CliRunners` is the register in which JavaScript runners can be defined for use by `Opal::CLI`. Runners will be called via the `#call` method and passed a Hash containing the following keys:

Runners can be registered using ‘#register_runner(name, runner)`.

Public Class Methods

[](name) click to toggle source
# File lib/opal/cli_runners.rb, line 32
def self.[](name)
  @register[name.to_sym]&.call
end
alias_runner(new_name, old_name) click to toggle source

Alias a runner name

# File lib/opal/cli_runners.rb, line 68
def self.alias_runner(new_name, old_name)
  self[new_name.to_sym] = -> { self[old_name.to_sym] }

  nil
end
register_runner(name, runner, path = nil) click to toggle source

@param name [Symbol] the name at which the runner can be reached @param runner [#call] a callable object that will act as the “runner” @param runner [Symbol] a constant name that once autoloaded will point to

a callable.

@param path [nil,String] a path for setting up autoload on the constant

# File lib/opal/cli_runners.rb, line 53
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
registered_runners() click to toggle source
# File lib/opal/cli_runners.rb, line 26
def self.registered_runners
  @runners
end
to_h() click to toggle source
# File lib/opal/cli_runners.rb, line 44
def self.to_h
  @register
end

Private Class Methods

[]=(name, runner) click to toggle source

@private

# File lib/opal/cli_runners.rb, line 37
def self.[]=(name, runner)
  warn "Overwriting Opal CLI runner: #{name}" if @register.key? name.to_sym

  @register[name.to_sym] = runner
end