Module: Base62

Defined in:
lib/base62.rb,
lib/base62/version.rb

Constant Summary collapse

PRIMITIVES =
(0..9).collect { |i| i.to_s } + ('A'..'Z').to_a + ('a'..'z').to_a
VERSION =
"1.0.0"

Class Method Summary collapse

Class Method Details

.decode(str) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/base62.rb', line 9

def decode(str)
  out = 0
  str.split(//).reverse.each_with_index do |char, index|
    place = PRIMITIVES.size ** index
    out += PRIMITIVES.index(char) * place
  end
  out
end

.encode(int) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/base62.rb', line 18

def encode(int)
  return "0" if int == 0

  rem = int
  result = ''
  while rem != 0
    result = PRIMITIVES[rem % PRIMITIVES.size].to_s + result
    rem /= PRIMITIVES.size
  end
  result
end