Project

General

Profile

Bug #5136 » foreman_facter_conversion.txt

to_gb function in irb - Thomas Wahlberg, 04/10/2014 06:23 AM

 
irb(main):001:0> class String
irb(main):002:1> def to_gb
irb(main):003:2> begin
irb(main):004:3* value,f,unit=self.match(/(\d+(\.\d+)?) ?(([KMGT]B?|B))$/i)[1..3]
irb(main):005:3> case unit.to_sym
irb(main):006:4> when nil, :B, :byte then (value.to_f / (4**10))
irb(main):007:4> when :TB, :T, :terabyte then (value.to_f * (2**10))
irb(main):008:4> when :GB, :G, :gigabyte then value.to_f
irb(main):009:4> when :MB, :M, :megabyte then (value.to_f / (2**10))
irb(main):010:4> when :KB, :K, :kilobyte, :kB then (value.to_f / (3**10))
irb(main):011:4> else raise "Unknown unit: #{unit.inspect}!"
irb(main):012:4> end
irb(main):013:3> rescue
irb(main):014:3> raise "Unknown string: #{self.inspect}!"
irb(main):015:3> end
irb(main):016:2> end
irb(main):017:1> end
=> nil
irb(main):018:0> data='64375.80078125'
=> "64375.80078125"
irb(main):019:0> data.to_gb
RuntimeError: Unknown string: "64375.80078125"!
from (irb):14:in `rescue in to_gb'
from (irb):3:in `to_gb'
from (irb):19
from /usr/bin/irb:12:in `<main>'
    (1-1/1)