Sha256: 0af6a2078ae0255f8c5baa6bed0edae129e3fa5e5aa6af93030a5e74262f19f8

Contents?: true

Size: 580 Bytes

Versions: 12

Compression:

Stored size: 580 Bytes

Contents

module MoreCoreExtensions
  module IEC60027_2
    # Support converting strings with an IEC60027-2 suffix to an integer
    # http://physics.nist.gov/cuu/Units/binary.html
    # Example: "1 Ki".iec_60027_2_to_i => 1024

    IEC_60027_2_SIZE_SUFFIXES = %w(Ki Mi Gi Ti Pi Ei Zi Yi).freeze
    def iec_60027_2_to_i
      suffix_index = IEC_60027_2_SIZE_SUFFIXES.index(self[-2..-1])
      if suffix_index.nil?
        Integer(self)
      else
        Integer(self[0..-3]) * (2**10)**(suffix_index + 1)
      end
    end
  end
end

String.send(:prepend, MoreCoreExtensions::IEC60027_2)

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
more_core_extensions-4.3.1 lib/more_core_extensions/core_ext/string/iec60027_2.rb
more_core_extensions-4.3.0 lib/more_core_extensions/core_ext/string/iec60027_2.rb
more_core_extensions-4.2.0 lib/more_core_extensions/core_ext/string/iec60027_2.rb
more_core_extensions-4.1.0 lib/more_core_extensions/core_ext/string/iec60027_2.rb
more_core_extensions-4.0.0 lib/more_core_extensions/core_ext/string/iec60027_2.rb
more_core_extensions-3.8.0 lib/more_core_extensions/core_ext/string/iec60027_2.rb
more_core_extensions-3.7.0 lib/more_core_extensions/core_ext/string/iec60027_2.rb
more_core_extensions-3.6.0 lib/more_core_extensions/core_ext/string/iec60027_2.rb
more_core_extensions-3.5.0 lib/more_core_extensions/core_ext/string/iec60027_2.rb
more_core_extensions-3.4.0 lib/more_core_extensions/core_ext/string/iec60027_2.rb
more_core_extensions-3.3.0 lib/more_core_extensions/core_ext/string/iec60027_2.rb
more_core_extensions-3.2.0 lib/more_core_extensions/core_ext/string/iec60027_2.rb