module Random::RangeExtensions

Random extensions for Range class.

Public Instance Methods

at_rand() click to toggle source

Return a random element from the range.

@example

(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'

@return [String]

A random element from range

@api public

# 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