method
index
ruby latest stable - Class:
Matrix
index(*args)public
The index method is specialized to return the index as [row, column] It also accepts an optional selector argument, see #each for details.
Matrix [ [1,2], [3,4] ].index (&:even?) # => [0, 1] Matrix [ [1,1], [1,1] ].index (1, :strict_lower) # => [1, 0]
# File lib/matrix.rb, line 514
def index(*args)
raise ArgumentError, "wrong number of arguments(#{args.size} for 0-2)" if args.size > 2
which = (args.size == 2 || SELECTORS.include?(args.last)) ? args.pop : :all
return to_enum :find_index, which, *args unless block_given? || args.size == 1
if args.size == 1
value = args.first
each_with_index(which) do |e, row_index, col_index|
return row_index, col_index if e == value
end
else
each_with_index(which) do |e, row_index, col_index|
return row_index, col_index if yield e
end
end
nil
end