バイトの整数表現を親しみやすいものにフォーマットする必要があります。Ruby または Rails にそのフォーマットを行ってくれるユーティリティ関数があることを願っています (もちろん、私の怠惰を永続させるためです)。
次のようなものを探しています:
format_bytes(1024) -> "1 KB"
format_bytes(1048576) -> "1 MB"
ActiveSupport にはその逆を行うための機能があるようですが、この方向で行う方法は見つかりませんでした。
存在しない場合、特にエレガントな解決策を持っている人はいますか?
人間のサイズに合わせた数字が探しているものです。
require 'action_view'
include ActionView::Helpers::NumberHelper
number_to_human_size(123) # => 123 Bytes
number_to_human_size(1234) # => 1.2 KB
number_to_human_size(12345) # => 12.1 KB
number_to_human_size(1234567) # => 1.2 MB
number_to_human_size(1234567890) # => 1.1 GB
number_to_human_size(1234567890123) # => 1.1 TB
number_to_human_size(1234567, :precision => 2) # => 1.18 MB
number_to_human_size(483989, :precision => 0) # => 473 KB
number_to_human_size(1234567, :precision => 2, :separator => ',') # => 1,18 MB