Module: TestBench::Telemetry::Sink::Handler
- Defined in:
- lib/test_bench/telemetry/sink/handler.rb
Defined Under Namespace
Modules: HandleMacro, HandlerMethod
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.included(cls) ⇒ Object
5
6
7
8
9
10
11
12
13
14
|
# File 'lib/test_bench/telemetry/sink/handler.rb', line 5
def self.included(cls)
cls.class_exec do
include Sink
extend HandlerMethod
extend HandleMacro
include Event::Events
end
end
|
Instance Method Details
#handle(event) ⇒ Object
Also known as:
call
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/test_bench/telemetry/sink/handler.rb', line 16
def handle(event)
handles = handle?(event)
if handles
handler_method = handler_method(event)
parameters = method(handler_method).parameters
final_parameter_type, _ = parameters.last
if not final_parameter_type == :rest
parameter_count = parameters.count
arguments = event.values[0...parameter_count]
else
arguments = event.values
end
__send__(handler_method, *arguments)
true
else
false
end
end
|
#handle?(event_or_event_type) ⇒ Boolean
42
43
44
45
46
|
# File 'lib/test_bench/telemetry/sink/handler.rb', line 42
def handle?(event_or_event_type)
handler_method = handler_method(event_or_event_type)
not handler_method.nil?
end
|
#handler_method(event_or_event_type) ⇒ Object
48
49
50
51
52
53
54
55
56
|
# File 'lib/test_bench/telemetry/sink/handler.rb', line 48
def handler_method(event_or_event_type)
handler_method = self.class.handler_method(event_or_event_type)
if respond_to?(handler_method)
handler_method
else
nil
end
end
|