Module: Julewire::Core::Destinations

Defined in:
lib/julewire/core/destinations/collection.rb,
lib/julewire/core/destinations.rb,
lib/julewire/core/destinations/sink.rb,
lib/julewire/core/destinations/registry.rb,
lib/julewire/core/destinations/definition.rb,
lib/julewire/core/destinations/write_step.rb,
lib/julewire/core/destinations/destination.rb,
lib/julewire/core/destinations/chaos_output.rb,
lib/julewire/core/destinations/tail_sampling.rb,
lib/julewire/core/destinations/synchronized_output.rb

Defined Under Namespace

Modules: Sink Classes: ChaosOutput, Collection, Definition, Destination, Registry, SynchronizedOutput, TailSampling, WriteStep

Class Method Summary collapse

Class Method Details

.factory_for(kind) ⇒ Object



23
24
25
# File 'lib/julewire/core/destinations.rb', line 23

def factory_for(kind)
  @factories[normalize_name(kind)]
end

.normalize_name(value) ⇒ Object



27
28
29
# File 'lib/julewire/core/destinations.rb', line 27

def normalize_name(value)
  Core.normalize_name(value, name: "destination name")
end

.register(kind, &factory) ⇒ Object

Raises:

  • (ArgumentError)


9
10
11
12
13
14
# File 'lib/julewire/core/destinations.rb', line 9

def register(kind, &factory)
  raise ArgumentError, "destination factory block required" unless factory

  @factories[normalize_name(kind)] = factory
  nil
end

.unregister(kind) ⇒ Object

Private testing seam for ‘Julewire::Testing.unregister_destination`.



17
18
19
20
# File 'lib/julewire/core/destinations.rb', line 17

def unregister(kind)
  @factories.delete(normalize_name(kind))
  nil
end