Module: Tokenizr

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

Constant Summary collapse

INDEX =
'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
LENGTH =
15
VERSION =
"1.0.0"

Class Method Summary collapse

Class Method Details

.decode(string) ⇒ Object



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

def self.decode(string)
  str = string.reverse
  ret = 0

  (0...str.length).each do |i|
    ret += INDEX.index(str[i]) * (Tokenizr.bcpow(INDEX.length, (str.length - 1) - i))
  end

  ret.to_s[1..-1].to_i
end

.encode(number) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/tokenizr.rb', line 5

def self.encode(number)
  number = lengthen(number).to_i
  ret = ''

  start = (Math.log(number) / Math.log(INDEX.length).to_f).floor
  start.downto(0).each do |i|
    ret += INDEX[((number / Tokenizr.bcpow(INDEX.length, i).to_f).floor % INDEX.length)]
  end

  ret.reverse
end