Sha256: f2b130a93d77a254046f45bf19c135ca08a6847efe046c3c61a764b04ea37d49

Contents?: true

Size: 852 Bytes

Versions: 23

Compression:

Stored size: 852 Bytes

Contents

#
# 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 /\w\d/).
#
#--
#
# CREDIT goes to George Moschovitis.
#
# NOTE This is not very efficient. Better way?
#
#++

def String.random(max_length = 8, char_re = /[\w\d]/)
  # gmosx: this is a nice example of input parameter checking.
  # this is NOT a real time called method so we can add this
  # check. Congrats to the author.
  raise ArgumentError.new('char_re must be a regular expression!') unless char_re.is_a?(Regexp)

  string = ""

  while string.length < max_length
      ch = rand(255).chr
      string << ch if ch =~ char_re
  end

  return string
end


#  _____         _
# |_   _|__  ___| |_
#   | |/ _ \/ __| __|
#   | |  __/\__ \ |_
#   |_|\___||___/\__|
#
# TODO

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
facets-1.3.0 lib/facets/core/string/self/random.rb
facets-1.1.0 lib/facet/string/self/random.rb
facets-1.2.0 lib/facets/core/string/self/random.rb
facets-1.2.1 lib/facets/core/string/self/random.rb
facets-1.3.1 lib/facets/core/string/self/random.rb
facets-1.3.2 lib/facets/core/string/self/random.rb
facets-1.3.3 lib/facets/core/string/self/random.rb
facets-1.4.1 lib/facets/core/string/self/random.rb
facets-1.4.2 lib/facets/core/string/self/random.rb
facets-1.4.0 lib/facets/core/string/self/random.rb
facets-1.4.3 lib/facets/core/string/self/random.rb
facets-1.4.5 lib/facets/core/string/self/random.rb
facets-1.4.4 lib/facets/core/string/self/random.rb
facets-1.7.0 lib/facets/core/string/self/random.rb
facets-1.7.30 lib/facets/core/string/self/random.rb
facets-1.7.38 lib/facets/core/string/self/random.rb
facets-1.7.46 lib/facets/core/string/self/random.rb
facets-1.8.49 lib/facets/core/string/self/random.rb
facets-1.8.0 lib/facets/core/string/self/random.rb
facets-1.8.20 lib/facets/core/string/self/random.rb