Sha256: f90d633ad1d4c5837857f8c9ba61228544410d86443c06a6d220caec2f7db77a
Contents?: true
Size: 621 Bytes
Versions: 1
Compression:
Stored size: 621 Bytes
Contents
class SimpleHasher ALLOWED_CHARS = "CLK0oXklU2d6RvTrS1aDBx9GfN3e7FnQOtsmPi85MYq4AWHbZIuwJEgjVhpzyc" def self.encode(id) length = ALLOWED_CHARS.length while id > length -1 hash = ALLOWED_CHARS[id % length,1].concat( hash || "" ) id = (id / length).floor end ALLOWED_CHARS[id,1].concat(hash || "") end def self.decode(hash) length = ALLOWED_CHARS.length size = hash.length - 1 array = hash.split('') id = ALLOWED_CHARS.index(array.pop) i = 0 array.each do |c| id += ALLOWED_CHARS.index(c) * (length ** (size - i)) i += 1 end id end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
simple-hasher-0.0.4 | lib/simplehasher.rb |