Begin to add Numeric class helper for converting size strings
This commit is contained in:
parent
8031ebe9d1
commit
271cf8a603
|
@ -0,0 +1,37 @@
|
|||
module Vagrant
|
||||
module Util
|
||||
class Numeric
|
||||
# Authors Note: This class has borrowed some code from the ActiveSupport Numeric class
|
||||
|
||||
# Conversion helper constants
|
||||
KILOBYTE = 1024
|
||||
MEGABYTE = KILOBYTE * 1024
|
||||
GIGABYTE = MEGABYTE * 1024
|
||||
TERABYTE = GIGABYTE * 1024
|
||||
PETABYTE = TERABYTE * 1024
|
||||
EXABYTE = PETABYTE * 1024
|
||||
|
||||
class << self
|
||||
|
||||
# A helper that converts a shortcut string to its bytes representation.
|
||||
# The expected format of `str` is essentially: "<Number>XX"
|
||||
# Where `XX` is shorthand for KB, MB, GB, TB, PB, or EB. For example, 50 megabytes:
|
||||
#
|
||||
# str = "50MB"
|
||||
#
|
||||
# @param [String] - str
|
||||
# @return [Integer] - bytes
|
||||
def string_to_bytes(str)
|
||||
str = str.to_s.strip
|
||||
end
|
||||
|
||||
# @private
|
||||
# Reset the cached values for platform. This is not considered a public
|
||||
# API and should only be used for testing.
|
||||
def reset!
|
||||
instance_variables.each(&method(:remove_instance_variable))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,6 +1,8 @@
|
|||
require "log4r"
|
||||
require "securerandom"
|
||||
|
||||
require "vagrant/util/numeric"
|
||||
|
||||
module VagrantPlugins
|
||||
module Kernel_V2
|
||||
class VagrantConfigDisk < Vagrant.plugin("2", :config)
|
||||
|
@ -124,9 +126,12 @@ module VagrantPlugins
|
|||
errors << "Disk type '#{@type}' is not a valid type. Please pick one of the following supported disk types: #{DEFAULT_DISK_TYPES.join(', ')}"
|
||||
end
|
||||
|
||||
# TODO: Convert a string to int here?
|
||||
if @size && !@size.is_a?(Integer)
|
||||
errors << "Config option size for disk is not an integer"
|
||||
if @size.is_a?(String)
|
||||
@size = Vagrant::Util::Numeric.string_to_bytes(@size)
|
||||
else
|
||||
errors << "Config option size for disk is not an integer"
|
||||
end
|
||||
end
|
||||
|
||||
if @file
|
||||
|
|
Loading…
Reference in New Issue