Module: Tokenizr
- Defined in:
- lib/tokenizr.rb,
lib/tokenizr/error.rb,
lib/tokenizr/version.rb
Defined Under Namespace
Classes: Error
Constant Summary collapse
- INDEX =
'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'- LENGTH =
15- VERSION =
"1.0.1"
Class Method Summary collapse
Class Method Details
.decode(string) ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/tokenizr.rb', line 25 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
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/tokenizr.rb', line 7 def self.encode(number) if number.nil? raise Error.new 'Supplied argument must be a number (nil found)' elsif number.class != Fixnum || number.to_i != number raise Error.new 'Supplied argument must be an integer' end 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 |