Module: CloseYourIt::Monitor::ClassMethods

Defined in:
lib/closeyourit/monitor.rb

Instance Method Summary collapse

Instance Method Details

#monitor(method_name, label: nil) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/closeyourit/monitor.rb', line 21

def monitor(method_name, label: nil)
  wrapper = Module.new do
    define_method(method_name) do |*args, **kwargs, &block|
      measured_label = label || "#{self.class}##{method_name}"
      CloseYourIt::Instrumenter.measure(measured_label, args: args, kwargs: kwargs) do
        super(*args, **kwargs, &block)
      end
    end
  end
  prepend(wrapper)
end