Sha256: e19e0a8deed2c5a83231f5ca7dd47734092eb2dea8c70a239dd1a96893d692d6

Contents?: true

Size: 671 Bytes

Versions: 1

Compression:

Stored size: 671 Bytes

Contents

# frozen_string_literal: true

module Lite
  module Measurements
    class DigitalStorage < Lite::Measurements::Base

      include Lite::Measurements::Helpers::ShiftHelper

      DIGITAL_STORAGE_UNITS = {
        bytes: 1.0,
        kilobytes: 1024.0,
        megabytes: 1024.0**2,
        gigabytes: 1024.0**3,
        terabytes: 1024.0**4,
        petabytes: 1024.0**5,
        exabytes: 1024.0**6
      }.freeze

      def convert(from:, to:)
        assert_all_valid_keys!(from, to, DIGITAL_STORAGE_UNITS.keys)
        return amount if equal_units?(from, to)

        shift_units(amount, type: DIGITAL_STORAGE_UNITS, from: from, to: to)
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lite-measurements-2.0.0 lib/lite/measurements/digital_storage.rb