Module: UsefulUtilities::Size::Bit
- Includes:
- Standard::Decimal
- Included in:
- UsefulUtilities::Size
- Defined in:
- lib/useful_utilities/size/bit.rb
Overview
Possible units:
:bit - bits
:kbit - kilobits
:Mbit - megabits
:Gbit - gigabits
:Tbit - terabits
Used SI standard en.wikipedia.org/wiki/Binary_prefix
Decimal
1 K = 1000
Constant Summary
Constants included from Standard::Decimal
Standard::Decimal::GIGA, Standard::Decimal::KILO, Standard::Decimal::MEGA, Standard::Decimal::TERA
Instance Method Summary collapse
-
#bits_per_sec_to_human_readable(value_in_bits) ⇒ String
Human readable value.
-
#bits_to_human_size(size, unit, rounder = 3) ⇒ Numeric
Humanized size in provided unit.
-
#suitable_unit_for_bits(value) ⇒ Symbol
Suitable unit.
-
#to_bits(size, unit) ⇒ Numeric
Size in bits.
-
#to_gigabits(size, unit) ⇒ Numeric
Size in gigabits.
-
#to_kilobits(size, unit) ⇒ Numeric
Size in kilobits.
-
#to_megabits(size, unit) ⇒ Numeric
Size in megabits.
-
#to_terabits(size, unit) ⇒ Numeric
Size in terabits.
Methods included from Standard::Decimal
#to_decimal_bi, #to_giga, #to_kilo, #to_mega, #to_tera
Instance Method Details
#bits_per_sec_to_human_readable(value_in_bits) ⇒ String
Returns human readable value.
84 85 86 87 88 89 |
# File 'lib/useful_utilities/size/bit.rb', line 84 def bits_per_sec_to_human_readable(value_in_bits) unit = suitable_unit_for_bits(value_in_bits) value = bits_to_human_size(value_in_bits, unit.to_sym) "#{value} #{unit}/s" end |
#bits_to_human_size(size, unit, rounder = 3) ⇒ Numeric
Returns humanized size in provided unit.
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/useful_utilities/size/bit.rb', line 56 def bits_to_human_size(size, unit, rounder = 3) case unit when :bit then size.round(rounder) when :kbit then to_kilobits(size, :bit).round(rounder) when :Mbit then to_megabits(size, :bit).round(rounder) when :Gbit then to_gigabits(size, :bit).round(rounder) when :Tbit then to_terabits(size, :bit).round(rounder) else unsupported_unit!(unit) end end |
#suitable_unit_for_bits(value) ⇒ Symbol
Returns suitable unit.
70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/useful_utilities/size/bit.rb', line 70 def suitable_unit_for_bits(value) return not_integer!(value) unless value.is_a?(Integer) return not_positive_integer!(value) unless value > -1 if value.to_s.length <= 3 then :bit elsif value.to_s.length <= 6 then :kbit elsif value.to_s.length <= 9 then :Mbit elsif value.to_s.length <= 12 then :Gbit else :Tbit end end |
#to_bits(size, unit) ⇒ Numeric
Returns size in bits.
48 49 50 |
# File 'lib/useful_utilities/size/bit.rb', line 48 def to_bits(size, unit) to_decimal_bi(size, bit_prefix(unit)) end |
#to_gigabits(size, unit) ⇒ Numeric
Returns size in gigabits.
27 28 29 |
# File 'lib/useful_utilities/size/bit.rb', line 27 def to_gigabits(size, unit) to_giga(size, bit_prefix(unit)) end |
#to_kilobits(size, unit) ⇒ Numeric
Returns size in kilobits.
41 42 43 |
# File 'lib/useful_utilities/size/bit.rb', line 41 def to_kilobits(size, unit) to_kilo(size, bit_prefix(unit)) end |
#to_megabits(size, unit) ⇒ Numeric
Returns size in megabits.
34 35 36 |
# File 'lib/useful_utilities/size/bit.rb', line 34 def to_megabits(size, unit) to_mega(size, bit_prefix(unit)) end |
#to_terabits(size, unit) ⇒ Numeric
Returns size in terabits.
20 21 22 |
# File 'lib/useful_utilities/size/bit.rb', line 20 def to_terabits(size, unit) to_tera(size, bit_prefix(unit)) end |