Remove SecureRandom#base36 extension method
This commit is contained in:
parent
e16896fac1
commit
9b69ae8fc2
|
@ -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
|
|
Loading…
Reference in New Issue