Sha256: 39bcb888e697822eee4b327c56bee1fc3726c752d53b661d2806d4e221e169d3

Contents?: true

Size: 521 Bytes

Versions: 22

Compression:

Stored size: 521 Bytes

Contents

module MoreCoreExtensions
  module ArrayRandom
    #
    # Picks a valid index randomly
    #
    #   [1, 2, 3, 4, 2, 4].random_index  # => random number between 0..5
    def random_index
      case self.size
      when 0; nil
      when 1; 0
      else    rand(0...self.size)
      end
    end

    #
    # Picks an element randomly
    #
    #   [1, 2, 3, 4, 2, 4].random_element  # => random element in Array
    def random_element
      sample
    end
  end
end

Array.send(:include, MoreCoreExtensions::ArrayRandom)

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
more_core_extensions-4.5.1 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-4.5.0 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-4.4.0 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-4.3.1 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-4.3.0 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-4.2.0 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-4.1.0 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-4.0.0 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-3.8.0 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-3.7.0 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-3.6.0 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-3.5.0 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-3.4.0 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-3.3.0 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-3.2.0 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-3.1.1 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-3.1.0 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-3.0.0 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-2.0.0 lib/more_core_extensions/core_ext/array/random.rb
more_core_extensions-1.2.0 lib/more_core_extensions/core_ext/array/random.rb