Module: Rex::ExtTime
- Defined in:
- lib/rex/time.rb
Overview
Extended time related functions.
Class Method Summary collapse
-
.sec_to_s(seconds) ⇒ Object
Convert seconds to a string that is broken down into years, days, hours, minutes, and second.
-
.str_to_sec(str) ⇒ Object
Converts a string in the form n years g days x hours y mins z secs.
Class Method Details
.sec_to_s(seconds) ⇒ Object
Convert seconds to a string that is broken down into years, days, hours, minutes, and second.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/rex/time.rb', line 15 def self.sec_to_s(seconds) parts = [ 31536000, 86400, 3600, 60, 1 ].map { |d| if ((c = seconds / d) > 0) seconds -= c.truncate * d c.truncate else 0 end }.reverse str = '' [ "sec", "min", "hour", "day", "year" ].each_with_index { |name, idx| next if (!parts[idx] or parts[idx] == 0) str = "#{parts[idx]} #{name + ((parts[idx] != 1) ? 's' :'')} " + str } str.empty? ? "0 secs" : str.strip end |
.str_to_sec(str) ⇒ Object
Converts a string in the form n years g days x hours y mins z secs.
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/rex/time.rb', line 39 def self.str_to_sec(str) fields = str.split(/ /) secs = 0 fields.each_with_index { |f, idx| val = 0 case f when /^year/ val = 31536000 when /^day/ val = 86400 when /^hour/ val = 3600 when /^min/ val = 60 when /^sec/ val = 1 end secs += val * fields[idx-1].to_i } secs end |