Module: BenchmarkDriver::DefaultJobParser
- Defined in:
- lib/benchmark_driver/default_job_parser.rb
Class Method Summary collapse
-
.for(klass:, metrics:) ⇒ Object
Build default JobParser for given job klass.
Instance Method Summary collapse
-
#parse(contexts: [], prelude: nil, benchmark:, teardown: nil, loop_count: nil, required_ruby_version: nil) ⇒ Array<BenchmarkDriver::Default::Job>
This method is dynamically called by ‘BenchmarkDriver::JobParser.parse`.
Class Method Details
.for(klass:, metrics:) ⇒ Object
Build default JobParser for given job klass
4 5 6 7 8 9 10 11 12 |
# File 'lib/benchmark_driver/default_job_parser.rb', line 4 def self.for(klass:, metrics:) Module.new.tap do |parser| class << parser include DefaultJobParser end parser.define_singleton_method(:job_class) { klass } parser.define_singleton_method(:job_metrics) { metrics } end end |
Instance Method Details
#parse(contexts: [], prelude: nil, benchmark:, teardown: nil, loop_count: nil, required_ruby_version: nil) ⇒ Array<BenchmarkDriver::Default::Job>
This method is dynamically called by ‘BenchmarkDriver::JobParser.parse`
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/benchmark_driver/default_job_parser.rb', line 21 def parse(contexts: [], prelude: nil, benchmark:, teardown: nil, loop_count: nil, required_ruby_version: nil) parse_benchmark(benchmark).each do |job| job.contexts = parse_contexts(contexts) job.metrics = job_metrics job.prelude.prepend("#{prelude}\n") if prelude job.teardown.prepend("#{teardown}\n") if teardown job.loop_count ||= loop_count job.required_ruby_version ||= required_ruby_version end.each(&:freeze) end |