class PositionalGenerator::Builder::Letter

Public Class Methods

new(length, ranges) click to toggle source
# File lib/helpers/positional_generator.rb, line 430
def initialize(length, ranges)
  @length = length
  @ranges = ranges
end

Public Instance Methods

generate(_) click to toggle source
# File lib/helpers/positional_generator.rb, line 435
def generate(_)
  @length.times.inject('') do |acc, _index|
    generated_character = char
    "#{acc}#{generated_character}"
  end
end

Private Instance Methods

char() click to toggle source
# File lib/helpers/positional_generator.rb, line 444
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