Remove SecureRandom#base36 extension method

This commit is contained in:
Dominik Kwiatek 2020-11-01 19:10:41 +01:00
parent e16896fac1
commit 9b69ae8fc2

View file

@ -1,23 +0,0 @@
# From Rails 6
# Remove once upgraded
module SecureRandom
BASE36_ALPHABET = ("0".."9").to_a + ("a".."z").to_a
# SecureRandom.base36 generates a random base36 string in lowercase.
#
# The argument _n_ specifies the length of the random string to be generated.
#
# If _n_ is not specified or is +nil+, 16 is assumed. It may be larger in the future.
# This method can be used over +base58+ if a deterministic case key is necessary.
#
# The result will contain alphanumeric characters in lowercase.
#
# p SecureRandom.base36 # => "4kugl2pdqmscqtje"
# p SecureRandom.base36(24) # => "77tmhrhjfvfdwodq8w7ev2m7"
def self.base36(n = 16)
SecureRandom.random_bytes(n).unpack("C*").map do |byte|
idx = byte % 64
idx = SecureRandom.random_number(36) if idx >= 36
BASE36_ALPHABET[idx]
end.join
end
end