Sha256: 9ec541326edeecf5bfcdbb4cecb4820c0a1ad47af106bebd940e31b352f5c3b0

Contents?: true

Size: 865 Bytes

Versions: 3

Compression:

Stored size: 865 Bytes

Contents

require 'facet/array/store'
class Array
  # Modifies #[]= to accept an array of indexes for assignment.
  #
  #   require 'facet/array/index-op'
  #
  #   a = ['a','b','c','d']
  #
  #   a[[1]] = 'x'             #=> ['x']
  #   a                        #=> ['a','x','c','d']
  #
  #   a[[1,-1]] = ['m','n']    #=> ['m','n']
  #   a                        #=> ['a','m','c','n']
  #
  def []=(*args)
    if Array === args.at(0)
      idx = args.shift
      idx.each{ |i| store(i,args[i]) }
      return values_at( *idx )
    else
      return store(*args)
    end
  end
end


  ###### #####   #### ######
    ##   ##     ##      ##
    ##   ####     ##    ##
    ##   ##        ##   ##
    ##   #####  ####    ##

#__TEST__

if __FILE__ == $0 
  require 'test/unit'  
  class Tectcase < Test::Unit::TestCase  
    def test_index_op
      # (to do)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
facets-0.7.0 lib/facet/array/%5B%5D%3D.rb
facets-0.7.1 lib/facet/array/%5B%5D%3D.rb
facets-0.7.2 lib/facet/array/%5B%5D%3D.rb