module Profilizer::ClassMethods::ProfilizerModule
Public Instance Methods
define_profilized_method!(klass, method_name, time: nil, gc: nil, memory: nil)
click to toggle source
Calls superclass method
# 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
Private Instance Methods
method_visibility(klass, method_name)
click to toggle source
# File lib/profilizer.rb, line 73 def method_visibility(klass, method_name) if klass.private_method_defined?(method_name) :private elsif klass.protected_method_defined?(method_name) :protected elsif klass.public_method_defined?(method_name) :public else raise ArgumentError, "Method #{method_name} is not defined on #{klass}" end end