From 29eb1b16028928139dcaa236beb6d351c85f434c Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Sun, 26 Jan 2020 18:27:40 +0900 Subject: Moved Array#shuffle and Array#shuffle! to rbinc --- array.rb | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100755 array.rb (limited to 'array.rb') diff --git a/array.rb b/array.rb new file mode 100755 index 0000000000..ed5779290f --- /dev/null +++ b/array.rb @@ -0,0 +1,36 @@ +#!/usr/bin/ruby +class Array + # call-seq: + # ary.shuffle! -> ary + # ary.shuffle!(random: rng) -> ary + # + # Shuffles elements in +self+ in place. + # + # a = [ 1, 2, 3 ] #=> [1, 2, 3] + # a.shuffle! #=> [2, 3, 1] + # a #=> [2, 3, 1] + # + # The optional +rng+ argument will be used as the random number generator. + # + # a.shuffle!(random: Random.new(1)) #=> [1, 3, 2] + def shuffle!(random: Random) + __builtin_rb_ary_shuffle_bang(random) + end + + # call-seq: + # ary.shuffle -> new_ary + # ary.shuffle(random: rng) -> new_ary + # + # Returns a new array with elements of +self+ shuffled. + # + # a = [ 1, 2, 3 ] #=> [1, 2, 3] + # a.shuffle #=> [2, 3, 1] + # a #=> [1, 2, 3] + # + # The optional +rng+ argument will be used as the random number generator. + # + # a.shuffle(random: Random.new(1)) #=> [1, 3, 2] + def shuffle(random: Random) + __builtin_rb_ary_shuffle(random); + end +end -- cgit v1.2.3