class Tinkerforge::Base58

internal

Constants

ALPHABET

Public Class Methods

decode(encoded) click to toggle source
# File lib/tinkerforge/ip_connection.rb, line 29
def self.decode(encoded)
  value = 0
  base = 1
  encoded.reverse.split(//).each do |c|
    index = ALPHABET.index c
    if index == nil
      raise ArgumentError, "UID '#{encoded}' contains invalid character"
    end
    value += index * base
    base *= 58
  end
  value
end
encode(value) click to toggle source
# File lib/tinkerforge/ip_connection.rb, line 19
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