module GxG::Units::Bytes
Public Class Methods
categories()
click to toggle source
# File lib/gxg/gxg_units.rb, line 73 def self.categories() [:numeric, :byte, :memory, :storage, :computer] end
interpret(quanta_string="",interpret_for_locale=:en_US,interpret_for_numeric_base=10)
click to toggle source
# File lib/gxg/gxg_units.rb, line 76 def self.interpret(quanta_string="",interpret_for_locale=:en_US,interpret_for_numeric_base=10) multiplier = nil # case quanta_string.to_s.downcase.to_sym # Attribution: http://whatsabyte.com/ # Attribution: https://en.wikipedia.org/wiki/Exabyte # Note: I am electing to count along the 1024 (to the power) rule. Hard drive manufacturers can kiss my rosey-red, # I'll not bugger my enumeration standard for their bloody sales force. :P Thus: # I've attempted to include the IS and IEC terms and abbreviations. # LATER: add ability to distinguish case: Kb = kiloBIT, KB = KiloBYTE, etc when :byte, :bytes multiplier = 1 when :kb, :kib, :kilobyte, :kilobytes, :kibibyte, :kibibytes multiplier = 1024 ** 1 when :mb, :mib, :megabyte, :megabytes, :mebibyte, :mebibytes multiplier = 1024 ** 2 when :gb, :gib, :gigabyte, :gigabytes, :gibibyte, :gibibytes multiplier = 1024 ** 3 when :tb, :tib, :terabyte, :terabytes, :tebibyte, :tebibytes multiplier = 1024 ** 4 when :pb, :pib, :petabyte, :petabytes, :pebibyte, :pebibytes multiplier = 1024 ** 5 when :eb, :eib, :exobyte, :exobytes, :exbibyte, :exbibytes multiplier = 1024 ** 6 when :zb, :zib, :zettabyte, :zettabytes, :zebibyte, :zebibytes multiplier = 1024 ** 7 when :yb, :yib, :yottabyte, :yottabytes, :yobibyte, :yobibytes multiplier = 1024 ** 8 when :bb, :bib, :brontobyte, :brontobytes multiplier = 1024 ** 9 when :geopbyte, :geopbytes # TODO: GeopByte: need to find missing SI and IEC abbreviations multiplier = 1024 ** 10 end # if multiplier {:quantum => {:byte => multiplier}, :attributes => nil} else nil end end