From 2bf7bc4cbcf61afc2f59ad9a897c4740cdbc39ef Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Sun, 12 Dec 2010 21:36:52 +0100 Subject: + Array#delete_if_at Allow deletion of an element from the array iff it's at a given position (or in a given range of positions). --- lib/rbot/core/utils/extends.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'lib/rbot') diff --git a/lib/rbot/core/utils/extends.rb b/lib/rbot/core/utils/extends.rb index b1964617..84833d9f 100644 --- a/lib/rbot/core/utils/extends.rb +++ b/lib/rbot/core/utils/extends.rb @@ -108,6 +108,17 @@ class ::Array self.delete_at(index) end + # This method deletes a given object _el_ if it's found at the given + # position _pos_. The position can be either an integer or a range. + def delete_if_at(el, pos) + idx = self.index(el) + if pos === idx + self.delete_at(idx) + else + nil + end + end + # shuffle and shuffle! are defined in Ruby >= 1.8.7 # This method returns a new array with the same items as -- cgit v1.2.3