Method: Enumerable#random
- Defined in:
- lib/extra/enumerable.rb
#random(how_many = 1) ⇒ Object
Get a random element from the array.
Example: [:a, :b, :c].random #=> :b
Returns: Random object(s) or nil.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/extra/enumerable.rb', line 29 def random(how_many = 1) objects = {} array = to_a # Let's just skip to nil if more than existent entries was requested. return if array.size < how_many # This is a longer, more efficient way than sorting the entire array. how_many.times do index = rand(array.size) redo if objects.keys.include? index objects[index] = array[index] end how_many == 1 ? objects.values[0] : objects.values end |