Class: Random

Inherits:
Object show all
Defined in:
lib/standard/facets/random.rb

Overview

Randomization Extensions

This library extends Array, String, Hash and other classes with randomization methods. Most of the methods are of one of two kinds. Either they “pick” a random element from the reciever or they randomly “shuffle” the reciever.

The most common example is Array#shuffle, which simply randmomizes the order of an array’s elements.

[1,2,3].shuffle  #~> [2,3,1]

The other methods do similar things for their respective classes.

The classes are all extended via mixins which have been created within Ruby’s Random class.

Credit for this work is due to:

  • Ilmari Heikkinen

  • Christian Neukirchen

  • Thomas Sawyer

NOTE: Inline QED tests are almost pointless here b/c… yea, it’s random. So indtead of the usual ‘#=>` we use `#~>` which means approx. equal and prevens QED from making a hard assertion.

Defined Under Namespace

Modules: ArrayExtensions, HashExtensions, IntegerExtensions, NumericExtensions, RangeExtensions, StringExtensions

Class Method Summary collapse

Class Method Details

.letterObject

Module method to generate a random letter.

Random.letter  #~> "q"
Random.letter  #~> "r"
Random.letter  #~> "a"


50
51
52
# File 'lib/standard/facets/random.rb', line 50

def self.letter
  (Random.number(26) + (Random.number(2) == 0 ? 65 : 97) ).chr
end