Revision 99a2326b
Added by Tim Speetjens over 12 years ago
- ID 99a2326bae9e0086b970a199fa83fd7be37e1460
lib/core_extensions.rb | ||
---|---|---|
class String
|
||
def to_gb
|
||
begin
|
||
value,unit=self.match(/(\d+|.+) ([KMG]B)$/i)[1..2]
|
||
value,f,unit=self.match(/(\d+(\.\d+)?) ?(([KMG]B?|B))$/i)[1..3]
|
||
case unit.to_sym
|
||
when nil, :B, :byte then (value.to_f / 1000_000_000)
|
||
when :GB, :G, :gigabyte then value.to_f
|
||
... | ... | |
else raise "Unknown unit: #{unit.inspect}!"
|
||
end
|
||
rescue
|
||
raise "Unknown string"
|
||
raise "Unknown string: #{self.inspect}!"
|
||
end
|
||
end
|
||
end
|
Also available in: Unified diff
fixes #1166 - be more liberal in accepted values for to_gb - add better logging message
Signed-off-by: Tim Speetjens <tim.speetjens@gmail.com>