Method: BBLib::TaskTimer#time
- Defined in:
- lib/bblib/core/classes/task_timer.rb
#time(task = :default, type = :current) ⇒ Float, ...
Returns an aggregated metric for a given type.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/bblib/core/classes/task_timer.rb', line 21 def time(task = :default, type = :current) return nil unless tasks.keys.include?(task) numbers = tasks[task][:history].map { |v| v[:time] } case type when :current return nil unless tasks[task][:current] Time.now.to_f - tasks[task][:current] when :min, :max, :first, :last numbers.send(type) when :avg numbers.size.zero? ? nil : numbers.inject { |sum, n| sum + n }.to_f / numbers.size when :sum numbers.inject { |sum, n| sum + n } when :all numbers when :count numbers.size end end |