Module: Random::RangeExtensions

Defined in:
lib/garcon/core_ext/random.rb

Overview

Random extensions for Range class.

Instance Method Summary collapse

Instance Method Details

#at_randString

Return a random element from the range.

Examples:

(1..4).at_rand           # => 2
(1..4).at_rand           # => 4

(1.5..2.5).at_rand       # => 2.06309842754533
(1.5..2.5).at_rand       # => 1.74976944931541

('a'..'z').at_rand       # => 'q'
('a'..'z').at_rand       # => 'f'

Returns:

  • (String)

    A random element from range



82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/garcon/core_ext/random.rb', line 82

def at_rand
  first, last = first(), last()
  if first.respond_to?(:random_delta)
    begin
      first.random_delta(last, exclude_end?)
    rescue
      to_a.at_rand
    end
  else
    to_a.at_rand
  end
end