Sha256: a56ebabcb787cc3c2e1675e0b37d4b3bdbc1a3b1e7c2f861e3f74313bf92f00b
Contents?: true
Size: 1001 Bytes
Versions: 8
Compression:
Stored size: 1001 Bytes
Contents
class Array # CREDIT Daniel Schierbeck # Inverse of #delete_if. def delete_unless(&block) delete_if { |element| not block.call(element) } end # Delete multiple values from array. # # a = [1,2,3,4] # a.delete_values(1,2) #=> [1,2] # a #=> [3,4] # def delete_values(*values) d = [] values.each{ |v| d << delete(v) } d end # Delete multiple values from array given # indexes or index range. # # a = [1,2,3,4] # a.delete_values_at(1,2) #=> [2,3] # a #=> [1,4] # a = [1,2,3,4] # a.delete_values_at(0..2) #=> [1,2,3] # a #=> [4] # def delete_values_at(*selectors) idx = [] selectors.each{ |i| case i when Range idx.concat( i.to_a ) else idx << i.to_i end } idx.uniq! dvals = values_at(*idx) idx = (0...size).to_a - idx self.replace( values_at(*idx) ) return dvals end end
Version data entries
8 entries across 8 versions & 1 rubygems