class Base32::Electrologica
Constants
- ALPHABET
- BIN
add shortcuts (convenience) aliases
- BINARY
- CODE
- NUM
- NUMBER
Public Class Methods
_clean( str )
click to toggle source
# File lib/base32-alphabets/electrologica.rb, line 97 def self._clean( str ) ## note: allow spaces or slash (/) for dashes (-) str = str.strip ## remove leading and trailing spaces (first) str = str.tr( ' /', '-' ) str = str.gsub( /-{2,}/, '-' ) ## fold more than one dash into one end
_decode( str )
click to toggle source
Converts a base32 string to a base10 integer.
# File lib/base32-alphabets/electrologica.rb, line 87 def self._decode( str ) str = _clean( str ) str.split('-').reduce([]) do |bytes,char| byte = number[char] raise ArgumentError, "Value passed not a valid base32 string - >#{char}< not found in alphabet" if byte.nil? bytes << byte bytes end end
_encode( bytes )
click to toggle source
Converts a base10 integer to a base32 string.
# File lib/base32-alphabets/electrologica.rb, line 64 def self._encode( bytes ) bytes.each_with_index.reduce(String.new) do |buf, (byte,i)| buf << "-" if i > 0 ## add separator (-) EXCEPT for first char buf << alphabet[byte] buf end end
_fmt( str, group: 4, sep: ' ' )
click to toggle source
# File lib/base32-alphabets/electrologica.rb, line 72 def self._fmt( str, group: 4, sep: ' ' ) ## todo/fix: check sep - MUST be space () or slash (/) for now!!!!! str = _clean( str ) ## format in groups of four (4) separated by space ## e.g. 09-09-09-09-06-07-07-04-01-01-14-01-09-15-14-14-00-05-05-00 ## : 09-09-09-09 06-07-07-04 01-01-14-01 09-15-14-14 00-05-05-00 ## note: use reverse - if not divided by four that leading slice gets cut short str.split('-').reverse.each_slice( group ).map { |slice| slice.reverse.join( '-' ) }.reverse.join( sep ) end
alphabet()
click to toggle source
# File lib/base32-alphabets/electrologica.rb, line 11 def self.alphabet() ALPHABET; end
binary()
click to toggle source
# File lib/base32-alphabets/electrologica.rb, line 59 def self.binary() BINARY; end
code()
click to toggle source
# File lib/base32-alphabets/electrologica.rb, line 58 def self.code() CODE; end
number()
click to toggle source
# File lib/base32-alphabets/electrologica.rb, line 49 def self.number() NUMBER; end