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