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