Module: Utils::TimeUtils

Extended by:
TimeUtils
Included in:
TimeUtils
Defined in:
lib/utils/time_utils.rb

Instance Method Summary collapse

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

Parameters:

  • milliseconds (Integer)

Returns:

  • (String)


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

Parameters:

  • timestamp (String)

Returns:

  • (Integer)


12
13
14
15
# File 'lib/utils/time_utils.rb', line 12

def to_epoc_ms(timestamp)
  DateTime.parse( ).strftime("%Q")
  DateTime.parse(timestamp).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

Parameters:

  • ttl (String)

Returns:

  • (Integer)


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