Module: EncodeWithAlphabet

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

Constant Summary collapse

ALPHABET =
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
VERSION =
"0.0.4"

Class Method Summary collapse

Class Method Details

.encode(number, alphabet = ALPHABET) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/encode_with_alphabet.rb', line 5

def self.encode(number, alphabet = ALPHABET)
  raise 'number must be an integer' unless number.kind_of? Integer
  raise 'alphabet must be non-empty' if alphabet.empty?

  return alphabet[0,1] if number == 0

  base = ''
  sign = ''

  if number < 0
    sign = '-'
    number = - number
  end

  while number != 0
    number, i = number.divmod alphabet.size
    base = alphabet[i, 1] + base
  end

  return sign + base
end