module SimpleTimeMeasure::ClassMethods

Public Instance Methods

measure_class_method(name) { |time| ... } click to toggle source
Calls superclass method
# File lib/simple_time_measure.rb, line 53
def measure_class_method(name)
  m = Module.new do
    define_method name do |*args|
      result = nil
      time = SimpleTimeMeasure.time do
        result = super(*args)
      end
      yield(time) if block_given?
      result
    end
  end

  SimpleTimeMeasure.base_singleton_class.prepend m
end
measure_instance_method(name) { |time| ... } click to toggle source
Calls superclass method
# File lib/simple_time_measure.rb, line 38
def measure_instance_method(name)
  m = Module.new do
    define_method name do |*args|
      result = nil
      time = SimpleTimeMeasure.time do
        result = super(*args)
      end
      yield(time) if block_given?
      result
    end
  end

  prepend m
end