Class: Randrizer::Types::String

Inherits:
BaseType
  • Object
show all
Defined in:
lib/randrizer/types/string.rb

Constant Summary collapse

CHARS_NUMBERS =
"0123456789"
CHARS_SYMBOLS =
" !\"£$%^&()=-*/[]#\\~"
CHARS_LOWERCASE_LETTERS =
"abcdfeghijklmnopqrstuvwxyz"
CHARS_UPPERCASE_LETTERS =
CHARS_LOWERCASE_LETTERS.upcase
CHARS_ALL_LETTERS =
CHARS_LOWERCASE_LETTERS + CHARS_UPPERCASE_LETTERS
DEFAULT_VALID_CHARS =
CHARS_NUMBERS +
CHARS_ALL_LETTERS +
CHARS_SYMBOLS
DEFAULT_MIN_LENGTH =
0
DEFAULT_MAX_LENGTH =
99

Instance Method Summary collapse

Constructor Details

#initialize(min_length: DEFAULT_MIN_LENGTH, max_length: DEFAULT_MAX_LENGTH, valid_chars: DEFAULT_VALID_CHARS) ⇒ String

Returns a new instance of String.



22
23
24
25
26
27
28
# 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

Instance Method Details

#evalObject



36
37
38
39
40
# 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!Object



30
31
32
33
34
# File 'lib/randrizer/types/string.rb', line 30

def validate!
  return if @max_length >= @min_length

  raise ValidationError("invalid length configuration")
end