Issue #6596 has been updated by trans (Thomas Sawyer).


=begin
https://github.com/apillet/invaders/blob/ab32d1704e20cfffe472458b04c16ce82353dabe/classes/enemy_grid.rb

    @table.each_with_index do |row, rindex|
      row.each_with_index do |column, cindex|
        if column.nil? then
          @table[rindex][cindex] = enemy
          return
        end
      end
    end

Could have been written:

    @table.each_with_index do |row, rindex|
      row.indexes(nil).each do |cindex|
        @table[rindex][cindex] = enemy
        return
      end
    end

=end
----------------------------------------
Bug #6596: New method for Arrays : Array#index
https://bugs.ruby-lang.org/issues/6596#change-27279

Author: robin850 (Robin Dupret)
Status: Feedback
Priority: Normal
Assignee: 
Category: core
Target version: 2.0.0
ruby -v: 2.0.0


Hello

5 days ago, I submitted a pull request on Github which provides a new method for the array objects which is Array#indexes. I have fist edit the Array#index method in order it to return an array of indexes and not a single index (which is the first occurrence it finds). I found it more logical but a user (trans) tells us that it could break the contract of Array#index so I decided to move it into Array#indexes. Eric (drbrain) tells me I should reasonning why I want to add this method ; it's just a point of view : I don't really understand why Array#index return a single index if the parameter is in the array several times. 

Examples

a = [1, 2, 3, 1]
a.indexes(1)
Return : [0, 3]
a.index(1)
Return : 0
In my opinion, it's not really logical, 1 is in the array twice

Moreover, this pull request doesn't beak anything because we don't edit the Array#index method so programms which were created with previous version of Ruby will work. 

I hope my post is complete. Have a nice day.




-- 
http://bugs.ruby-lang.org/