Sha256: d90fe639295dbc1d5d8e0e27c8b34b3bae06b680d73ffeb296a216fe781f6628
Contents?: true
Size: 951 Bytes
Versions: 7
Compression:
Stored size: 951 Bytes
Contents
module PulseMeter class Observer::Extended < ::PulseMeter::Observer class << self protected def define_instrumented_method(method_owner, method, receiver, &handler) with_observer = method_with_observer(method) without_observer = method_without_observer(method) method_owner.send(:define_method, with_observer) do |*args, &block| start_time = Time.now begin result = self.send(without_observer, *args, &block) ensure begin delta = ((Time.now - start_time) * 1000).to_i observe_parameters = { self: self, delta: delta, result: result, args: args, exception: $! } receiver.instance_exec(observe_parameters, &handler) rescue StandardError end end end end end end end
Version data entries
7 entries across 7 versions & 1 rubygems