Class: Msf::Ui::Console::TablePrint::AgeFormatter
- Inherits:
-
Object
- Object
- Msf::Ui::Console::TablePrint::AgeFormatter
- Defined in:
- lib/msf/ui/console/table_print/age_formatter.rb
Instance Method Summary collapse
-
#format(date) ⇒ Object
Takes a string representation of a Time and attempts to parse it using a heuristic.
- #format_invalid_date(_date) ⇒ Object protected
Instance Method Details
#format(date) ⇒ Object
Takes a string representation of a Time and attempts to parse it using a heuristic. The duration is then calculated, and returned in a human readable format, such as ‘13m’ to represent 13 minutes ago.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/msf/ui/console/table_print/age_formatter.rb', line 9 def format(date) begin duration = (Time.now - Time.parse(date)) rescue ArgumentError return format_invalid_date(date) end seconds = duration minutes = seconds / 60 hours = duration / (60 * 60) days = duration / (60 * 60 * 24) years = duration / (60 * 60 * 24 * 365) if seconds < -1 format_invalid_date(date) elsif seconds < 0 '0s' elsif seconds < 60 * 2 "#{seconds.to_i}s" elsif minutes < 10 seconds = duration.to_i % 60 "#{minutes.to_i}m#{seconds == 0 ? '' : "#{seconds}s"}" elsif minutes < 60 * 3 "#{minutes.to_i}m" elsif hours < 8 minutes = minutes.to_i % 60 "#{hours.to_i}h#{minutes == 0 ? '' : "#{minutes}m"}" elsif hours < 24 * 2 "#{hours.to_i}h" elsif hours < 24 * 8 hours = hours.to_i % 24 "#{days.to_i}d#{hours == 0 ? '' : "#{hours}h"}" elsif hours < 24 * 365 * 2 "#{days.to_i}d" elsif hours < 24 * 365 * 8 days = days % 365 "#{years.to_i}y#{days == 0 ? '' : "#{days.to_i}d"}" else "#{years.to_i}y" end end |
#format_invalid_date(_date) ⇒ Object (protected)
52 53 54 |
# File 'lib/msf/ui/console/table_print/age_formatter.rb', line 52 def format_invalid_date(_date) "<invalid>" end |