Sha256: 7f62921caaadfd78795343e0b590d8382c9bb89db73bd733da87aa86712b7c87

Contents?: true

Size: 1.07 KB

Versions: 59

Compression:

Stored size: 1.07 KB

Contents

# encoding: utf-8

module LogStash; module Util; module ByteValue
  module_function

  B = 1
  KB = B << 10
  MB = B << 20
  GB = B << 30
  TB = B << 40
  PB = B << 50

  def parse(text)
    if !text.is_a?(String)
      raise ArgumentError, "ByteValue::parse takes a String, got a `#{text.class.name}`"
    end
    number = text.to_f
    factor = multiplier(text)

    (number * factor).to_i
  end

  def multiplier(text)
    case text
      when /(?:k|kb)$/
        KB
      when /(?:m|mb)$/
        MB
      when /(?:g|gb)$/
        GB
      when /(?:t|tb)$/
        TB
      when /(?:p|pb)$/
        PB
      when /(?:b)$/
        B
      else
        raise ArgumentError, "Unknown bytes value '#{text}'"
    end
  end

  def human_readable(number)
    value, unit = if number > PB
      [number / PB, "pb"]
    elsif number > TB
      [number / TB, "tb"]
    elsif number > GB
      [number / GB, "gb"]
    elsif number > MB
      [number / MB, "mb"]
    elsif number > KB
      [number / KB, "kb"]
    else
      [number, "b"]
    end

    format("%.2d%s", value, unit)
  end
end end end

Version data entries

59 entries across 59 versions & 1 rubygems

Version Path
logstash-core-6.8.23-java lib/logstash/util/byte_value.rb
logstash-core-6.8.22-java lib/logstash/util/byte_value.rb
logstash-core-6.8.21-java lib/logstash/util/byte_value.rb
logstash-core-6.8.20-java lib/logstash/util/byte_value.rb
logstash-core-6.8.19-java lib/logstash/util/byte_value.rb
logstash-core-6.8.18-java lib/logstash/util/byte_value.rb
logstash-core-6.8.17-java lib/logstash/util/byte_value.rb
logstash-core-6.8.16-java lib/logstash/util/byte_value.rb
logstash-core-6.8.15-java lib/logstash/util/byte_value.rb
logstash-core-6.8.14-java lib/logstash/util/byte_value.rb
logstash-core-6.8.13-java lib/logstash/util/byte_value.rb
logstash-core-6.8.12-java lib/logstash/util/byte_value.rb
logstash-core-6.8.11-java lib/logstash/util/byte_value.rb
logstash-core-6.8.10-java lib/logstash/util/byte_value.rb
logstash-core-6.8.9-java lib/logstash/util/byte_value.rb
logstash-core-6.8.8-java lib/logstash/util/byte_value.rb
logstash-core-6.8.7-java lib/logstash/util/byte_value.rb
logstash-core-7.5.2-java lib/logstash/util/byte_value.rb
logstash-core-7.5.1-java lib/logstash/util/byte_value.rb
logstash-core-6.8.6-java lib/logstash/util/byte_value.rb