From: Daniel Sheppard Date: 2006-05-26T08:51:38+09:00 Subject: Re: Array#delete_if! - a method to delete and return all array items for which the block evaluates to true. > Thanks. I didn't know about #partition. > > Still, if anyone can suggest an improved pure-ruby solution, I'd be > interested for educational reasons. class Array def delete_if! to_delete = [] delete_if do |item| to_delete << item if yield item end to_delete end end irb(main):010:0> arr = [1,2,3,4,5,6] => [1, 2, 3, 4, 5, 6] irb(main):011:0> arr.delete_if! {|x| x > 3} => [4, 5, 6] irb(main):012:0> arr => [1, 2, 3]