Module: Lemans::Agents

Defined in:
lib/lemans/agents.rb,
lib/lemans/agents/nop.rb,
lib/lemans/agents/base.rb,
lib/lemans/agents/oracle.rb,
lib/lemans/agents/miniswen.rb,
lib/lemans/agents/miniswen_installed.rb

Overview

The agents by name, resolved the way Environments.build resolves backends: the abstract class carries no list of its own children.

Defined Under Namespace

Classes: Base, Miniswen, MiniswenInstalled, Nop, Oracle

Constant Summary collapse

REGISTRY =
{
  "nop" => "Nop",
  "oracle" => "Oracle",
  "miniswen" => "Miniswen",
  "miniswen-installed" => "MiniswenInstalled"
}.freeze

Class Method Summary collapse

Class Method Details

.build(name, profile:, model: nil) ⇒ Object



14
15
16
17
18
19
# File 'lib/lemans/agents.rb', line 14

def self.build(name, profile:, model: nil)
  constant = REGISTRY[name] or
    raise ConfigError, "unknown agent #{name.inspect} (known: #{REGISTRY.keys.join(", ")})"

  const_get(constant).new(profile: profile, model: model)
end