Преобразовать читаемый человеком размер файла в байты в рубине - PullRequest
0 голосов
/ 10 сентября 2018

Я прошел по этой ссылке . Мое требование - полная противоположность этому. Например, строка 10 КБ должна быть преобразована в 10240 (ее эквивалентный размер в байтах). У нас есть драгоценный камень для этого? или встроенный метод в ruby? Я сделал свое исследование, я не смог его обнаружить

1 Ответ

0 голосов
/ 10 сентября 2018

Есть Размер файла ( Рубинов )

Довольно просто написать свой собственный текст:

module ToBytes
  def to_bytes
    md = match(/^(?<num>\d+)\s?(?<unit>\w+)?$/)
    md[:num].to_i * 
      case md[:unit]
      when 'KB'
        1024
      when 'MB'
        1024**2
      when 'GB'
        1024**3
      when 'TB'
        1024**4
      when 'PB'
        1024**5
      when 'EB'
        1024**6
      when 'ZB'
        1024**7
      when 'YB'
        1024**8
      else
        1
      end
  end
end

size_string = "10KB"
size_string.extend(ToBytes).to_bytes
=> 10240

String.include(ToBytes)
"1024 KB".to_bytes
=> 1048576

Если вам нужны KiB, MiB и т. Д., Тогда вы просто добавляете множители.

...