class Benchkit::BenchmarkRoot

Attributes

benchmarks[R]

@return [Array<BenchmarkScript>]

Public Class Methods

new(name:, prelude: '', loop_count: nil, benchmark: nil, benchmarks: []) click to toggle source

@param [String] name @param [String] prelude @param [Integer,nil] loop_count @param [String,nil] benchmark - For running single instant benchmark @param [Array<Hash>] benchmarks - For running multiple benchmarks

# File lib/benchkit.rb, line 96
def initialize(name:, prelude: '', loop_count: nil, benchmark: nil, benchmarks: [])
  if benchmark
    unless benchmarks.empty?
      raise ArgumentError.new("Only either :benchmark or :benchmarks can be specified")
    end
    @benchmarks = [BenchmarkScript.new(name: name, prelude: prelude, benchmark: benchmark)]
  else
    @benchmarks = benchmarks.map do |hash|
      BenchmarkScript.new(Hash[hash.map { |k, v| [k.to_sym, v] }]).tap do |b|
        b.inherit_root(prelude: prelude, loop_count: loop_count)
      end
    end
  end
end