Vow::Registry
Holds the set of dispatchable procedures and turns a (name, raw JSON)
pair into a raw JSON result. This is Vow's transport-agnostic seam: an
HTTP adapter, a CLI, or a test harness all sit on dispatch and never
touch how a procedure was generated.
Mount one or more services to populate it — Vow::Registry.new(api, other)
or registry.mount(api). Mounting binds each service instance's exported
methods (the generated callbacks close over that instance) and records its
static descriptors, so the registry can also answer #manifest for codegen
and introspection.
Constructors
Class methods
Instance methods
Called by the generated vow_install to record a service's static
descriptors alongside its runtime callbacks.
Records a service's captured surface types. Deduped at #manifest time
so types shared across mounted services appear once.
The seam transports sit on: procedure name + raw JSON args object in,
raw JSON result out. Typed Vow::Errors (not-found, bad-input, decode
failures) propagate to the caller, which is responsible for turning them
into a transport-appropriate envelope.
context is the optional per-call Context a transport supplies; it
reaches only the methods that opt in by declaring a leading Context
parameter. Defaulting to nil keeps the bare dispatch(name, args) call
— used by context-free transports and tests — working unchanged.
The static contract of everything mounted here — for codegen, an introspection endpoint, or a health check.
Bind a service instance into this registry. Returns self for chaining.
Accepts anything Vow::Mountable — a class that mixed in either
Vow::Exportable or Vow::Exportable::All.
Names of every registered procedure, in insertion order — handy for introspection, health checks, and "did you mean?" diagnostics.