class Randrizer::Types::String

Constants

CHARS_ALL_LETTERS
CHARS_LOWERCASE_LETTERS
CHARS_NUMBERS
CHARS_SYMBOLS
CHARS_UPPERCASE_LETTERS
DEFAULT_MAX_LENGTH
DEFAULT_MIN_LENGTH
DEFAULT_VALID_CHARS

Public Class Methods

new(min_length: DEFAULT_MIN_LENGTH, max_length: DEFAULT_MAX_LENGTH, valid_chars: DEFAULT_VALID_CHARS) click to toggle source
# File lib/randrizer/types/string.rb, line 22
def initialize(min_length: DEFAULT_MIN_LENGTH,
               max_length: DEFAULT_MAX_LENGTH,
               valid_chars: DEFAULT_VALID_CHARS)
  @min_length = min_length
  @max_length = max_length
  @valid_chars = valid_chars
end

Public Instance Methods

eval() click to toggle source
# File lib/randrizer/types/string.rb, line 36
def eval
  chars_split = @valid_chars.split("")
  string_length = rand(@min_length..@max_length)
  string_length.times.map { chars_split.sample }.join
end
validate!() click to toggle source
# File lib/randrizer/types/string.rb, line 30
def validate!
  return if @max_length >= @min_length

  raise ValidationError("invalid length configuration")
end