class Faker::Alphanumeric

def alphanumeric(number: 32, min_alpha: 0, min_numeric: 0)

Returns:
  • (String) -

Parameters:
  • min_numeric (Integer) -- The minimum number of numbers to add to the string
  • min_alpha (Integer) -- The minimum number of alphabetic to add to the string
  • number (Integer) -- The number of characters to generate
def alphanumeric(number: 32, min_alpha: 0, min_numeric: 0)
  char_count = resolve(number)
  return '' if char_count.to_i < 1
  raise ArgumentError, 'min_alpha must be greater than or equal to 0' if min_alpha&.negative?
  raise ArgumentError, 'min_numeric must be greater than or equal to 0' if min_numeric&.negative?
  return Array.new(char_count) { sample(ALPHANUMS) }.join if min_alpha.zero? && min_numeric.zero?
  raise ArgumentError, 'min_alpha + min_numeric must be <= number' if min_alpha + min_numeric > char_count
  random_count = char_count - min_alpha - min_numeric
  alphas = Array.new(min_alpha) { sample(self::LLetters) }
  numbers = Array.new(min_numeric) { sample(self::Numbers) }
  randoms = Array.new(random_count) { sample(ALPHANUMS) }
  combined = alphas + numbers + randoms
  combined.shuffle.join
end