class HumanizedId::RandGenerator
Public Class Methods
new(prefix: '', length:)
click to toggle source
# File lib/humanized_id/rand_generator.rb, line 4 def initialize(prefix: '', length:) @prefix = prefix.nil? ? '' : prefix @length = length @target_charset = CHARSET end
Public Instance Methods
generate_random_humanized_id()
click to toggle source
# File lib/humanized_id/rand_generator.rb, line 10 def generate_random_humanized_id "#{@prefix}#{generate_random}" end
Private Instance Methods
generate_random()
click to toggle source
# File lib/humanized_id/rand_generator.rb, line 16 def generate_random SecureRandom.random_bytes(@length).unpack('C*').map { |byte| map_to_char(byte) }.join end
map_to_char(byte)
click to toggle source
# File lib/humanized_id/rand_generator.rb, line 20 def map_to_char(byte) index = byte % @target_charset.size @target_charset[index] end