From: Giuseppe Bilotta Date: Sun, 22 Jun 2008 23:04:10 +0000 (+0200) Subject: extends: define Array#shuffle(\!) only if not present already, and use simpler defini... X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=2897490901dd623fb5b8683971222502ada357dc;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git extends: define Array#shuffle(\!) only if not present already, and use simpler definitions --- 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