Module: Raif::Concerns::HasRuntimeDuration
- Extended by:
- ActiveSupport::Concern
- Included in:
- Agent, ModelCompletion, Task
- Defined in:
- app/models/raif/concerns/has_runtime_duration.rb
Instance Method Summary collapse
Instance Method Details
#runtime_duration ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/models/raif/concerns/has_runtime_duration.rb', line 19 def runtime_duration duration_in_seconds = runtime_duration_seconds return "-" if duration_in_seconds.nil? if duration_in_seconds < 1 "#{(duration_in_seconds * 1000).round}ms" elsif duration_in_seconds < 60 seconds = (duration_in_seconds * 100).round / 100.0 "#{seconds.to_s.sub(/\.0+\z/, "").sub(/(\.\d*[1-9])0+\z/, "\\1")}s" else total_seconds = duration_in_seconds.round hours = total_seconds / 3600 minutes = (total_seconds % 3600) / 60 seconds = total_seconds % 60 parts = [] parts << "#{hours}h" if hours.positive? parts << "#{minutes}m" if minutes.positive? || hours.positive? parts << "#{seconds}s" parts.join(" ") end end |
#runtime_duration_seconds ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'app/models/raif/concerns/has_runtime_duration.rb', line 10 def runtime_duration_seconds return if started_at.blank? || runtime_ended_at.blank? duration_in_seconds = runtime_ended_at - started_at return if duration_in_seconds.negative? duration_in_seconds end |
#runtime_ended_at ⇒ Object
6 7 8 |
# File 'app/models/raif/concerns/has_runtime_duration.rb', line 6 def runtime_ended_at completed_at || failed_at end |