class PositionalGenerator::Builder::Letter

def char

def char
  if @ranges
    case s = @ranges.sample(random: Faker::Config.random)
    when Range
      s.to_a.sample(random: Faker::Config.random)
    when Array, Set
      s.sample(random: Faker::Config.random)
    else
      raise ArgumentError, "unsupported range type: #{s.inspect}"
    end
  else
    Faker::Base.sample(Faker::Base::Letters)
  end
end

def generate(_)

def generate(_)
  @length.times.inject('') do |acc, _index|
    generated_character = char
    "#{acc}#{generated_character}"
  end
end

def initialize(length, ranges)

def initialize(length, ranges)
  @length = length
  @ranges = ranges
end