module Timeasure::ClassMethods

Public Instance Methods

timeasure_name() click to toggle source
# File lib/timeasure/class_methods.rb, line 25
def timeasure_name
  name.gsub('::', '_')
end
tracked_class_methods(*method_names) click to toggle source
# File lib/timeasure/class_methods.rb, line 9
def tracked_class_methods(*method_names)
  method_names.each do |method_name|
    add_method_to_interceptor(class_interceptor, method_name)
  end
end
tracked_instance_methods(*method_names) click to toggle source
# File lib/timeasure/class_methods.rb, line 3
def tracked_instance_methods(*method_names)
  method_names.each do |method_name|
    add_method_to_interceptor(instance_interceptor, method_name)
  end
end
tracked_private_class_methods(*method_names) click to toggle source
# File lib/timeasure/class_methods.rb, line 20
def tracked_private_class_methods(*method_names)
  tracked_class_methods(*method_names)
  method_names.each { |method_name| privatize_interceptor_method(class_interceptor, method_name) }
end
tracked_private_instance_methods(*method_names) click to toggle source
# File lib/timeasure/class_methods.rb, line 15
def tracked_private_instance_methods(*method_names)
  tracked_instance_methods(*method_names)
  method_names.each { |method_name| privatize_interceptor_method(instance_interceptor, method_name) }
end

Private Instance Methods

add_method_to_interceptor(interceptor, method_name) click to toggle source
Calls superclass method
# File lib/timeasure/class_methods.rb, line 31
def add_method_to_interceptor(interceptor, method_name)
  interceptor.class_eval do
    define_method method_name do |*args, &block|
      Timeasure.measure(klass_name: interceptor.klass_name.to_s, method_name: method_name.to_s) do
        super(*args, &block)
      end
    end
  end
end
class_interceptor() click to toggle source
# File lib/timeasure/class_methods.rb, line 49
def class_interceptor
  const_get("#{timeasure_name}ClassInterceptor")
end
instance_interceptor() click to toggle source
# File lib/timeasure/class_methods.rb, line 45
def instance_interceptor
  const_get("#{timeasure_name}InstanceInterceptor")
end
privatize_interceptor_method(interceptor, method_name) click to toggle source
# File lib/timeasure/class_methods.rb, line 41
def privatize_interceptor_method(interceptor, method_name)
  interceptor.class_eval { private method_name }
end