Class: RubyEventStore::InstrumentedBroker
- Inherits:
-
Object
- Object
- RubyEventStore::InstrumentedBroker
show all
- Defined in:
- lib/ruby_event_store/instrumented_broker.rb
Instance Method Summary
collapse
Constructor Details
#initialize(broker, instrumentation) ⇒ InstrumentedBroker
Returns a new instance of InstrumentedBroker.
5
6
7
8
|
# File 'lib/ruby_event_store/instrumented_broker.rb', line 5
def initialize(broker, instrumentation)
@broker = broker
@instrumentation = instrumentation
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *arguments, **keyword_arguments, &block) ⇒ Object
57
58
59
60
61
62
63
|
# File 'lib/ruby_event_store/instrumented_broker.rb', line 57
def method_missing(method_name, *arguments, **keyword_arguments, &block)
if respond_to?(method_name)
broker.public_send(method_name, *arguments, **keyword_arguments, &block)
else
super
end
end
|
Instance Method Details
#add_global_subscription(subscriber) ⇒ Object
31
32
33
34
35
|
# File 'lib/ruby_event_store/instrumented_broker.rb', line 31
def add_global_subscription(subscriber)
instrumentation.instrument("add_global_subscription.broker.rails_event_store", subscriber: subscriber) do
broker.add_global_subscription(subscriber)
end
end
|
#add_subscription(subscriber, topics) ⇒ Object
25
26
27
28
29
|
# File 'lib/ruby_event_store/instrumented_broker.rb', line 25
def add_subscription(subscriber, topics)
instrumentation.instrument("add_subscription.broker.rails_event_store", subscriber: subscriber, topics: topics) do
broker.add_subscription(subscriber, topics)
end
end
|
#add_thread_global_subscription(subscriber) ⇒ Object
45
46
47
48
49
|
# File 'lib/ruby_event_store/instrumented_broker.rb', line 45
def add_thread_global_subscription(subscriber)
instrumentation.instrument("add_thread_global_subscription.broker.rails_event_store", subscriber: subscriber) do
broker.add_thread_global_subscription(subscriber)
end
end
|
#add_thread_subscription(subscriber, topics) ⇒ Object
37
38
39
40
41
42
43
|
# File 'lib/ruby_event_store/instrumented_broker.rb', line 37
def add_thread_subscription(subscriber, topics)
instrumentation.instrument(
"add_thread_subscription.broker.rails_event_store",
subscriber: subscriber,
topics: topics,
) { broker.add_thread_subscription(subscriber, topics) }
end
|
#all_subscriptions_for(topic) ⇒ Object
51
52
53
54
55
|
# File 'lib/ruby_event_store/instrumented_broker.rb', line 51
def all_subscriptions_for(topic)
instrumentation.instrument("all_subscriptions_for.broker.rails_event_store", topic: topic) do
broker.all_subscriptions_for(topic)
end
end
|
#call(topic, event, record) ⇒ Object
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/ruby_event_store/instrumented_broker.rb', line 10
def call(topic, event, record)
instrumentation.instrument("call.broker.rails_event_store", topic: topic, event: event, record: record) do
if broker.public_method(:call).arity == 3
broker.call(topic, event, record)
else
warn " Message broker shall support topics.\n Topic WILL BE IGNORED in the current broker.\n Modify the broker implementation to pass topic as an argument to broker.call method.\n EOW\n broker.call(event, record)\n end\n end\nend\n"
|
#respond_to_missing?(method_name, _include_private) ⇒ Boolean
65
66
67
|
# File 'lib/ruby_event_store/instrumented_broker.rb', line 65
def respond_to_missing?(method_name, _include_private)
broker.respond_to?(method_name)
end
|