Class: Plumbing::Pipeline
- Defined in:
- lib/plumbing/pipeline.rb,
lib/plumbing/pipeline/base.rb,
lib/plumbing/pipeline/only.rb,
lib/plumbing/pipeline/except.rb,
lib/plumbing/pipeline/filter.rb,
lib/plumbing/pipeline/source.rb,
lib/plumbing/pipeline/junction.rb
Overview
Namespace + event registry for the composable event pipeline. Concrete pipelines are Pipeline::Source / Only / Except / Filter / Junction; they all emit immutable Plumbing::Event values to registered observers.
Defined Under Namespace
Classes: Base, Except, Filter, Junction, Only, Source
Class Method Summary collapse
- .event_type(name) ⇒ Object
-
.register(klass) ⇒ Object
Register an event class so #notify can build it from its type name (and so deserialisation has a known, allow-listed set of types).
- .registered_event_types ⇒ Object
Class Method Details
.event_type(name) ⇒ Object
21 |
# File 'lib/plumbing/pipeline.rb', line 21 def event_type(name) = @event_types.fetch(name) |
.register(klass) ⇒ Object
Register an event class so #notify can build it from its type name (and so deserialisation has a known, allow-listed set of types).
15 16 17 18 19 |
# File 'lib/plumbing/pipeline.rb', line 15 def register(klass) raise ArgumentError, "#{klass} is not a Plumbing::Event" unless klass.is_a?(Class) && klass < Plumbing::Event @event_types[klass.name] = klass klass end |
.registered_event_types ⇒ Object
23 |
# File 'lib/plumbing/pipeline.rb', line 23 def registered_event_types = @event_types.keys |