class Util::Base
Public Class Methods
decode(string)
click to toggle source
# File lib/record-locator-util.rb, line 27 def self.decode(string) string = string.to_s return string if string.split('').include?('1') || string.split('').include?('0') # as 0 and 1 are included into exceptional chars ring = Util::DECODER[Util::BASE27] base = Util::BASE27.length string.reverse.chars.enum_for(:each_with_index).inject(0) do |sum,(char,i)| sum + ring[char] * base**i end end
encode(value)
click to toggle source
# File lib/record-locator-util.rb, line 16 def self.encode(value) ring = Util::ENCODER[Util::BASE27] base = Util::BASE27.length result = [] until value == 0 result << ring[ value % base ] value /= base end result.reverse.join end