Array # extract_if

Um método Array útil que essencialmente encontra e remove um item de uma matriz de uma vez

class Array
def extract_if( &block )
if n = index(&block)
slice
!(n)
end
end
end

Os casos de uso são numerosos. Aqui está um: você tem uma lista de links aleatórios, mas deseja que a wikipedia sempre apareça primeiro.

@links = [ 'random.com/bla', '...', 'wikipedia.com/bla', '...']

# show.html.erb
<%= @links.extract_if {|link| link.matches/wikipedia.com/ } %> -
<%= @links.join(" - ") %>