Module: Morpheus::Benchmarking::HasBenchmarking
- Included in:
- Terminal
- Defined in:
- lib/morpheus/benchmarking.rb
Overview
Mixin for any class that needs benchmarking
Instance Method Summary collapse
- #start_benchmark(opts) ⇒ Object
-
#stop_benchmark(exit_code = 0, err = nil) ⇒ Object
finish the current benchmark and optionally print the time taken.
-
#with_benchmark(opts, &block) ⇒ Object
def benchmark_record @benchmark_record end.
Instance Method Details
#start_benchmark(opts) ⇒ Object
149 150 151 152 |
# File 'lib/morpheus/benchmarking.rb', line 149 def start_benchmark(opts) @benchmark_record = BenchmarkRecord.new(opts) return @benchmark_record end |
#stop_benchmark(exit_code = 0, err = nil) ⇒ Object
finish the current benchmark and optionally print the time taken.
155 156 157 158 159 160 161 162 163 164 |
# File 'lib/morpheus/benchmarking.rb', line 155 def stop_benchmark(exit_code=0, err=nil) if @benchmark_record @benchmark_record.stop(exit_code, err) @last_benchmark_record = @benchmark_record @benchmark_record = nil return @last_benchmark_record else return nil end end |
#with_benchmark(opts, &block) ⇒ Object
def benchmark_record
@benchmark_record
end
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
# File 'lib/morpheus/benchmarking.rb', line 121 def with_benchmark(opts, &block) exit_code, err = 0, nil begin start_benchmark(opts) if block_given? result = block.call() # exit_code, err = Morpheus::Cli::CliCommand.parse_command_result(result) if result.is_a?(Array) exit_code = result[0] err = result[0] elsif result == true || result == nil exit_code = 0 elsif result == false exit_code = 1 else exit_code = result end end rescue => ex raise ex # exit_code = 1 # err = ex.msg ensure stop_benchmark(exit_code, err) end return exit_code, err end |