Skip to content

Instantly share code, notes, and snippets.

@creationix
Created August 28, 2012 21:48
Show Gist options
  • Save creationix/3504635 to your computer and use it in GitHub Desktop.
Save creationix/3504635 to your computer and use it in GitHub Desktop.
local floor = require('math').floor
local table = require 'table'
-- For encoding numbers using modified base 64 for compact etags
local digits = {
"0", "1", "2", "3", "4", "5", "6", "7",
"8", "9", "A", "B", "C", "D", "E", "F",
"G", "H", "I", "J", "K", "L", "M", "N",
"O", "P", "Q", "R", "S", "T", "U", "V",
"W", "X", "Y", "Z", "a", "b", "c", "d",
"e", "f", "g", "h", "i", "j", "k", "l",
"m", "n", "o", "p", "q", "r", "s", "t",
"u", "v", "w", "x", "y", "z", "_", "$"
}
function numToBase(num, base)
local parts = {}
repeat
table.insert(parts, digits[(num % base) + 1])
num = floor(num / base)
until num == 0
return table.concat(parts)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment