UNITS = %w[kbps Mbps Gbps Tbps]
def from_human(bps, unit)
(UNITS.size+1).times do |round|
return bps unless UNITS[round..-1].include?(unit)
bps *= 1000
end
end
def to_human(bps)
unit = "bps"
(UNITS.size+1).times do |round|
return "%.2f%s" % [bps, unit] if bps.abs < 1000
unit = UNITS[round]
bps /= 1000
end
end