Ruby のファイルサイズはかなりのものですか?

概要

バイトを表す整数を「整った」形式の文字列に変換するメソッドを作成しようとしています。

これが私の半分仕事の試みです:

class Integer
  def to_filesize
    {
      'B'  => 1024,
      'KB' => 1024 * 1024,
      'MB' => 1024 * 1024 * 1024,
      'GB' => 1024 * 1024 * 1024 * 1024,
      'TB' => 1024 * 1024 * 1024 * 1024 * 1024
    }.each_pair { |e, s| return "#{s / self}#{e}" if self < s }
  end
end

私の何が間違っているのでしょうか?

解決策

Rails で使用する場合、標準の Rails 番号ヘルパーはどうでしょうか?

http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_to_human_size

number_to_human_size(数値, オプション = {})

?