From 2897490901dd623fb5b8683971222502ada357dc Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Mon, 23 Jun 2008 01:04:10 +0200 Subject: [PATCH] extends: define Array#shuffle(\!) only if not present already, and use simpler definitions --- lib/rbot/core/utils/extends.rb | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/rbot/core/utils/extends.rb b/lib/rbot/core/utils/extends.rb index e62e2f21..de6a7db4 100644 --- a/lib/rbot/core/utils/extends.rb +++ b/lib/rbot/core/utils/extends.rb @@ -108,21 +108,21 @@ class ::Array self.delete_at(index) end - # This method shuffles the items in the array - def shuffle! - base = self.dup - self.clear - while item = base.delete_one - self << item - end - self - end + # shuffle and shuffle! are defined in Ruby >= 1.8.7 # This method returns a new array with the same items as # the receiver, but shuffled - def shuffle - ret = self.dup - ret.shuffle! + unless method_defined? :shuffle + def shuffle + sort_by { rand } + end + end + + # This method shuffles the items in the array + unless method_defined? :shuffle! + def shuffle! + replace shuffle + end end end -- 2.39.5