Sha256: 13ee7ab36c1c0fcd7f04b3b92933470503f7eba7c46e61af2d20d306f4e27f1d
Contents?: true
Size: 1.84 KB
Versions: 2
Compression:
Stored size: 1.84 KB
Contents
module BenchmarkDriver class RubyInterface def self.run(**args, &block) new(**args).tap { |x| block.call(x) }.run end # Build jobs and run. This is NOT interface for users. def run unless @executables.empty? @config.executables = @executables end jobs = @jobs.flat_map do |job| BenchmarkDriver::JobParser.parse({ type: @config.runner_type, prelude: @prelude, loop_count: @loop_count, }.merge!(job)) end BenchmarkDriver::Runner.run(jobs, config: @config) end # # Config APIs from here # # @param [String,NilClass] output # @param [String,NilClass] runner def initialize(output: nil, runner: nil) @prelude = '' @loop_count = nil @jobs = [] @config = BenchmarkDriver::Config.new @config.output_type = output.to_s if output @config.runner_type = runner.to_s if runner @executables = [] end # @param [String] script def prelude(script) @prelude << "#{script}\n" end # @param [Integer] count def loop_count(count) @loop_count = count end # @param [String] name - Name shown on result output. # @param [String,nil] script - Benchmarked script in String. If nil, name is considered as script too. def report(name, script = nil) if script.nil? script = name end @jobs << { benchmark: [{ name: name, script: script }] } end def output(type) @config.output_type = type end # Backward compatibility. This is actually default now. def compare! @config.output_type = 'compare' end def rbenv(*versions) versions.each do |version| @executables << BenchmarkDriver::Rbenv.parse_spec(version) end end def verbose(level = 1) @config.verbose = level end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
benchmark_driver-0.10.14 | lib/benchmark_driver/ruby_interface.rb |
benchmark_driver-0.10.13 | lib/benchmark_driver/ruby_interface.rb |