Module: BenchmarkDriver::DefaultJobParser

Defined in:
lib/benchmark_driver/default_job_parser.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.for(klass) ⇒ Object

Build default JobParser for given job klass



4
5
6
7
8
9
10
11
12
13
# File 'lib/benchmark_driver/default_job_parser.rb', line 4

def self.for(klass)
  Module.new.tap do |parser|
    class << parser
      include DefaultJobParser
    end
    parser.define_singleton_method(:job_class) do
      klass
    end
  end
end

Instance Method Details

#parse(prelude: nil, benchmark:, teardown: nil, loop_count: nil) ⇒ Array<BenchmarkDriver::Default::Job>

This method is dynamically called by BenchmarkDriver::JobParser.parse

Parameters:

  • prelude (String) (defaults to: nil)
  • benchmark (String, Array<String,Hash{ Symbol => String }>, Hash{ Symbol => String })
  • teardown (String) (defaults to: nil)
  • loop_count (Integer) (defaults to: nil)

Returns:

  • (Array<BenchmarkDriver::Default::Job>)


21
22
23
24
25
26
27
# File 'lib/benchmark_driver/default_job_parser.rb', line 21

def parse(prelude: nil, benchmark:, teardown: nil, loop_count: nil)
  parse_benchmark(benchmark).each do |job|
    job.prelude.prepend("#{prelude}\n") if prelude
    job.teardown.prepend("#{teardown}\n") if teardown
    job.loop_count ||= loop_count
  end.each(&:freeze)
end