Sha256: ee6d4580dce16e2b16a31a56302f0acb8cafeeb69c2dd5320825658161349f83

Contents?: true

Size: 1.04 KB

Versions: 17

Compression:

Stored size: 1.04 KB

Contents

class Array

  # 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


#  _____         _
# |_   _|__  ___| |_
#   | |/ _ \/ __| __|
#   | |  __/\__ \ |_
#   |_|\___||___/\__|
#
=begin test

  require 'test/unit'

  class TCArray < Test::Unit::TestCase

    def test_delete_values_at
      a = [1,2,3,4]
      assert_equal( [2,3], a.delete_values_at(1,2) )
      assert_equal( [1,4], a )
      a = [1,2,3,4]
      assert_equal( [1,2,3], a.delete_values_at(0..2) )
      assert_equal( [4], a )
    end

  end

=end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
facets-1.0.0 lib/facet/array/delete_values_at.rb
facets-1.0.3 packages/core/lib/facet/array/delete_values_at.rb
facets-0.9.0 lib/nano/array/delete_values_at.rb
facets-1.2.1 lib/facets/core/array/delete_values_at.rb
facets-1.1.0 lib/facet/array/delete_values_at.rb
facets-1.2.0 lib/facets/core/array/delete_values_at.rb
facets-1.3.0 lib/facets/core/array/delete_values_at.rb
facets-1.3.2 lib/facets/core/array/delete_values_at.rb
facets-1.3.1 lib/facets/core/array/delete_values_at.rb
facets-1.3.3 lib/facets/core/array/delete_values_at.rb
facets-1.4.0 lib/facets/core/array/delete_values_at.rb
facets-1.4.1 lib/facets/core/array/delete_values_at.rb
facets-1.4.2 lib/facets/core/array/delete_values_at.rb
facets-1.4.3 lib/facets/core/array/delete_values_at.rb
facets-1.4.4 lib/facets/core/array/delete_values_at.rb
facets-1.4.5 lib/facets/core/array/delete_values_at.rb
facets-1.7.0 lib/facets/core/array/delete_values_at.rb