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