module Benches
  class Routine
    def initialize(instance, method, repetitions, *args)
      @instance = instance
      @method = method
      @repetitions = repetitions
      @args = args
    end

    def call
      Benchmark.bm(@method.length) do |x|
        x.report("#{@method}:") do
          @repetitions.times do
            @instance.send(@method, *@args)
          end
        end
      end
    end
  end
end