Class: Tinkerforge::Base58
- Inherits:
-
Object
- Object
- Tinkerforge::Base58
- Defined in:
- lib/tinkerforge/ip_connection.rb
Overview
internal
Constant Summary collapse
- ALPHABET =
'123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'
Class Method Summary collapse
Class Method Details
.decode(encoded) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/tinkerforge/ip_connection.rb', line 30 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) ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/tinkerforge/ip_connection.rb', line 20 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 |