Module: Random::StringExtensions::Self

Defined in:
lib/standard/facets/random.rb

Overview

Class-level methods.

Instance Method Summary collapse

Instance Method Details

#random(max_length = 8, char_re = /[\w\d]/) ⇒ Object

Returns a randomly generated string. One possible use is password initialization. Takes a max legnth of characters (default 8) and an optional valid char Regexp (default /wd/).

String.random    #~> 'dd4qed4r'

CREDIT George Moschovitis – TODO: This is not very efficient. Better way? ++

Raises:

  • (ArgumentError)


385
386
387
388
389
390
391
392
393
# File 'lib/standard/facets/random.rb', line 385

def random(max_length = 8, char_re = /[\w\d]/)
  raise ArgumentError.new('second argument must be a regular expression') unless char_re.is_a?(Regexp)
  string = ""
  while string.length < max_length
      ch = Random.number(255).chr
      string << ch if ch =~ char_re
  end
  return string
end

#random_binary(n_bytes) ⇒ Object

Generate a random binary string of n_bytes size.

CREDIT: Guido De Rosa



398
399
400
# File 'lib/standard/facets/random.rb', line 398

def random_binary(n_bytes)
  ( Array.new(n_bytes){ rand(0x100) } ).pack('c*') 
end