Module: Ace::Hitl::Providers

Defined in:
lib/ace/hitl/providers/providers.rb,
lib/ace/hitl/providers/lab.rb,
lib/ace/hitl/providers/ref.rb,
lib/ace/hitl/providers/errors.rb,
lib/ace/hitl/providers/lab/daemon_binding.rb

Overview

HITL provider adapters (spec 8wm.t.vrz): pluggable ask/delivery transports behind one interface. Agent-facing ace-hitl paths resolve adapters through this registry only — never a concrete transport.

Defined Under Namespace

Classes: AskResult, DeliverResult, Error, InvalidRefError, Lab, ProviderUnavailableError, Ref, UnknownProviderError, UnsupportedOperationError

Constant Summary collapse

REGISTRY =
{
  Lab::PROVIDER_NAME => -> { Lab.new }
}.freeze

Class Method Summary collapse

Class Method Details

.available ⇒ Object



26
27
28
# File 'lib/ace/hitl/providers/providers.rb', line 26

def available
  REGISTRY.keys.sort
end

.resolve(name) ⇒ Object



30
31
32
33
34
35
36
37
38
# File 'lib/ace/hitl/providers/providers.rb', line 30

def resolve(name)
  factory = REGISTRY[name.to_s]
  unless factory
    raise UnknownProviderError,
      "unknown HITL provider '#{name}' (available: #{available.join(', ')})"
  end

  factory.call
end