EventHandler::Subscription
Inherits Reference < Object
A single event subscription that remembers how to cancel itself.
The target is captured at subscribe time inside the cancel closure, so
#off always removes from the exact object it added to, regardless of
where the owner later points. #off is idempotent, so two teardown paths
can both call it without double-freeing; #on cancels any previous handler
first, so a slot re-armed repeatedly can't leak.
target is any EventHandler includer (duck-typed: anything with the
generated on(type, ...)/off(type, wrapper) pair).
Constructors
A subscription over an already-installed handler: cancel removes it.
This is the form the generated EventHandler#on/#once return, so
every subscription — whether built here or handed out by on — tears
down through the same idempotent #off.
Instance methods
dispose/disposed? aliases of #off/!active?, for callers whose
teardown vocabulary is dispose (e.g. reactive stacks). #off stays the
canonical spelling (it mirrors on/off).
The registered handler's identity hash (Wrapper#handler_hash), for the
off(type, hash) bulk-removal form. Raises ArgumentError when this
subscription holds no wrapper (see #wrapper).
Subscribes block to event type on target, first cancelling any
handler this slot already holds. Returns self.
The Wrapper behind this subscription, when it was returned by the
generated on/once (in the erased Wrapper(Proc(Event, Nil)) form
those hand to AddHandlerEvent listeners). nil for a slot built
empty and armed via #on, which wraps a nested subscription instead.