module Random::String

Public Class Methods

included(base) click to toggle source
# File lib/more/facets/random.rb, line 336
def self.included(base)
  base.extend(Self)
end

Public Instance Methods

at_rand( separator=// ) click to toggle source

Return a random separation of the string. Default separation is by charaacter.

"Ruby rules".at_rand(' ')  #=> ["Ruby"]
# File lib/more/facets/random.rb, line 384
def at_rand( separator=%r/ )
  #separator = self.class.patterns( separator )
  self.split(separator,-1).at_rand
end
at_rand!( separator=// ) click to toggle source

Return a random separation while removing it from the string. Default separation is by character.

s = "Ruby rules"
s = at_rand!(' ')  #=> "Ruby"
s                  #=> "rules"
# File lib/more/facets/random.rb, line 396
def at_rand!( separator=%r/ )
  #separator = self.class.patterns( separator )
  a = self.shatter( separator )
  w = []; a.each_with_index { |s,i| i % 2 == 0 ? w << s : w.last << s }
  i = Random.number(w.size)
  r = w.delete_at( i )
  self.replace( w.join('') )
  return r
end
rand_byte() click to toggle source

Return a random byte of self.

"Ruby rules".rand_byte  #=> 121
# File lib/more/facets/random.rb, line 410
def rand_byte
  self[Random.number(size)]
end
rand_byte!() click to toggle source

Destructive rand_byte. Delete a random byte of self and return it.

s = "Ruby rules"
s.rand_byte!      #=> 121
s                 #=> "Rub rules"
# File lib/more/facets/random.rb, line 420
def rand_byte!
  i = Random.number(size)
  rv = self[i,1]
  self[i,1] = ''
  rv
end
rand_index() click to toggle source

Return a random string index.

"Ruby rules".rand_index  #=> 3
# File lib/more/facets/random.rb, line 431
def rand_index
  Random.number(size)
end
shuffle(separator=//) click to toggle source

Return the string with seperated sections arranged in a random order. The default seperation is by character.

"Ruby rules".shuffle  #=> "e lybRsuur"
# File lib/more/facets/random.rb, line 440
def shuffle(separator=%r/)
  split(separator).shuffle.join('')
end
shuffle!(separator=//) click to toggle source

In place version of shuffle.

# File lib/more/facets/random.rb, line 446
def shuffle!(separator=%r/)
  self.replace( shuffle(separator) )
end