Module: Factorix::Formatting
- Included in:
- CLI::Commands::Cache::Evict, CLI::Commands::Cache::Stat
- Defined in:
- lib/factorix/formatting.rb
Overview
Formatting utilities for human-readable output
This module provides methods for formatting sizes and durations in a human-readable format for CLI output.
Instance Method Summary collapse
-
#format_duration(seconds) ⇒ String
Format duration value for display.
-
#format_size(size) ⇒ String
Format size value for display using binary prefixes (IEC).
Instance Method Details
#format_duration(seconds) ⇒ String
Format duration value for display
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/factorix/formatting.rb', line 38 def format_duration(seconds) return "-" if seconds.nil? seconds = Integer(seconds) return "#{seconds}s" if seconds < 60 minutes = seconds / 60 return "#{minutes}m" if minutes < 60 hours = minutes / 60 remaining_minutes = minutes % 60 return "#{hours}h #{remaining_minutes}m" if hours < 24 days = hours / 24 remaining_hours = hours % 24 "#{days}d #{remaining_hours}h" end |
#format_size(size) ⇒ String
Format size value for display using binary prefixes (IEC)
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/factorix/formatting.rb', line 18 def format_size(size) return "unlimited" if size.nil? return "0 B" if size == 0 units = %w[B KiB MiB GiB TiB] unit_index = 0 value = Float(size) while value >= 1024 && unit_index < units.size - 1 value /= 1024 unit_index += 1 end unit_index == 0 ? "#{size} B" : "#{"%.1f" % value} #{units[unit_index]}" end |