Class: Tinkerforge::Base58

Inherits:
Object
  • Object
show all
Defined in:
lib/tinkerforge/ip_connection.rb

Constant Summary collapse

ALPHABET =
'123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'

Class Method Summary collapse

Class Method Details

.decode(encoded) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/tinkerforge/ip_connection.rb', line 28

def self.decode(encoded)
  value = 0
  base = 1
  encoded.reverse.split(//).each do |c|
    index = ALPHABET.index c
    value += index * base
    base *= 58
  end
  value
end

.encode(value) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/tinkerforge/ip_connection.rb', line 18

def self.encode(value)
  encoded = ''
  while value >= 58
    div, mod = value.divmod 58
    encoded = ALPHABET[mod, 1] + encoded
    value = div
  end
  ALPHABET[value, 1] + encoded
end