Module: Utils::TimeUtils
Instance Method Summary collapse
- #get_duration_hrs_mins_secs_ms(milliseconds) ⇒ Object
-
#milliseconds_to_ttl(milliseconds) ⇒ String
Milliseconds to String TTL.
-
#to_epoc_ms(timestamp) ⇒ Integer
Convert iso datetime to ms from unix epoch.
-
#to_iso_string(milliseconds) ⇒ Object
Converts milliseconds to timestamp.
-
#ttl_to_milliseconds(ttl) ⇒ Integer
Convert ttl into milliseconds.
Instance Method Details
#get_duration_hrs_mins_secs_ms(milliseconds) ⇒ Object
73 74 75 76 77 78 79 80 81 |
# File 'lib/utils/time_utils.rb', line 73 def get_duration_hrs_mins_secs_ms(milliseconds) return '' unless milliseconds hours, milliseconds = milliseconds.divmod(1000 * 60 * 60) minutes, milliseconds = milliseconds.divmod(1000 * 60) seconds, milliseconds = milliseconds.divmod(1000) "#{hours}h #{minutes}m #{seconds}s #{milliseconds}ms" rescue "" end |
#milliseconds_to_ttl(milliseconds) ⇒ String
Milliseconds to String TTL
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/utils/time_utils.rb', line 56 def milliseconds_to_ttl(milliseconds) return '' unless milliseconds days, milliseconds = milliseconds.divmod(1000 * 60 * 60 * 24) hours, milliseconds = milliseconds.divmod(1000 * 60 * 60) minutes, milliseconds = milliseconds.divmod(1000 * 60) seconds, milliseconds = milliseconds.divmod(1000) str = "#{days}d #{hours}h #{minutes}m #{seconds}s #{milliseconds}ms" arr = str.split(" ") new_str = "" for item in arr do if item[0] != '0' new_str += item + " " end end new_str.rstrip end |
#to_epoc_ms(timestamp) ⇒ Integer
Convert iso datetime to ms from unix epoch
12 13 14 15 |
# File 'lib/utils/time_utils.rb', line 12 def to_epoc_ms() DateTime.parse( ).strftime("%Q") DateTime.parse().strftime("%Q").to_i end |
#to_iso_string(milliseconds) ⇒ Object
Converts milliseconds to timestamp
18 19 20 21 |
# File 'lib/utils/time_utils.rb', line 18 def to_iso_string(milliseconds) milliseconds -= 3 * 60 * 60 * 1000 Time.at(milliseconds/1000.0).strftime('%Y-%m-%dT%H:%M:%S.%3NZ') end |
#ttl_to_milliseconds(ttl) ⇒ Integer
Convert ttl into milliseconds
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/utils/time_utils.rb', line 26 def ttl_to_milliseconds(ttl) arr = ttl.split(' ') total_time = 0 n = 1 for item in arr do if item.include?("h") n = 60 * 60 * 1000 elsif item.include?("m") && !item.include?("ms") n = 60 * 1000 elsif item.include?("s") && !item.include?("ms") n = 1000 elsif item.include?("ms") n = 1 elsif item.include?("d") n = 24 * 60 * 60 * 1000 elsif item.include?("day") n = 24 * 60 * 60 * 1000 end value = item.gsub(/[^0-9,.]/, "").to_i value *= n total_time += value n = 1 end total_time end |