lib/lite/uxid/nanoid.rb in lite-uxid-1.0.2 vs lib/lite/uxid/nanoid.rb in lite-uxid-1.0.3
- old
+ new
@@ -1,25 +1,30 @@
# frozen_string_literal: true
-require 'securerandom'
-
module Lite
module Uxid
class Nanoid < Lite::Uxid::Base
class << self
def encode
klass = new
- klass.nanoid_encode
+ klass.encode
end
end
- def nanoid_encode
- encoding_length.times.with_object('') do |_i, str|
- str + encoding_chars[(SecureRandom.rand * encoding_base).floor]
+ def encode
+ str = ''
+ len = encoding_length
+ chars = encoding_chars.split(str)
+
+ while len.positive?
+ str += chars.sample
+ len -= 1
end
+
+ str
end
end
end
end