Module: Liri::Common::Duration

Defined in:
lib/common/duration.rb

Overview

Módulo Duration

Este módulo se encarga de convertir el tiempo en segundos a un formato legible

Class Method Summary collapse

Class Method Details

.humanize(time, times_round:, times_round_type:) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/common/duration.rb', line 15

def humanize(time, times_round:, times_round_type:)
  # El time puede ser un BigDecimal y aunque se redondee puede responder con un formato 0.744e2, por eso
  # es imporantes hacerle un to_f para convertirlo a 74.4 antes de proceder a humanizarlo
  time = time.to_f
  case times_round_type
  when :floor then ChronicDuration.output(time.truncate(times_round), format: :short, keep_zero: true)
  when :roof then ChronicDuration.output(time.round(times_round), format: :short, keep_zero: true)
  else raise "Invalid times_round_type. Expected: floor or roof. Received: #{times_round_type}"
  end
end