Class: TestBench::Telemetry::Sink::Handler::EventRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/test_bench/telemetry/sink/handler/event_registry.rb

Constant Summary collapse

Error =
Class.new(RuntimeError)

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#event_classesObject



8
9
10
# File 'lib/test_bench/telemetry/sink/handler/event_registry.rb', line 8

def event_classes
  @event_classes ||= {}
end

Instance Method Details

#event_typesObject



13
14
15
# File 'lib/test_bench/telemetry/sink/handler/event_registry.rb', line 13

def event_types
  event_classes.keys
end

#get(event_type) ⇒ Object



17
18
19
20
21
# File 'lib/test_bench/telemetry/sink/handler/event_registry.rb', line 17

def get(event_type)
  event_classes.fetch(event_type) do
    raise Error, "#{event_type} isn't registered"
  end
end

#register(event_class) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/test_bench/telemetry/sink/handler/event_registry.rb', line 23

def register(event_class)
  if registered?(event_class)
    raise Error, "#{event_class} is already registered"
  end

  event_type = event_class.event_type

  event_classes[event_type] = event_class
end

#registered?(event_class) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
36
37
# File 'lib/test_bench/telemetry/sink/handler/event_registry.rb', line 33

def registered?(event_class)
  event_type = event_class.event_type

  event_classes.key?(event_type)
end