class Numeric Alpha36 = ("a".."z").to_a + ("0".."9").to_a def to_s36 return "" if self < 1 s, q = "", self loop do q, r = (q - 1).divmod(36) s.prepend(Alpha36[r]) break if q.zero? end s end end