Module: Profilizer::ClassMethods::ProfilizerModule

Defined in:
lib/profilizer.rb

Instance Method Summary collapse

Instance Method Details

#define_profilized_method!(klass, method_name, time: nil, gc: nil, memory: nil) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/profilizer.rb', line 55

def define_profilized_method!(klass, method_name, time: nil, gc: nil, memory: nil)
  original_visibility = method_visibility(klass, method_name)

  define_method method_name do |*args, &block|
    result = nil
    Profiler.new.profile_method(time: time, gc: gc, memory: memory) do
      result = super(*args, &block)
    end
    result
  end

  ruby2_keywords method_name

  send original_visibility, method_name
end