Sto rifattorizzando un programma di pedine e sto tentando di elaborare una richiesta di spostamento dei giocatori (nella forma di "3, 3, 5, 5" per esempio) in un int array. Ho il seguente metodo, ma non si sente come Ruby-come come so che potrebbe essere:Rubrica di refactoring: conversione dell'array di stringhe nell'array int
def translate_move_request_to_coordinates(move_request)
return_array = []
coords_array = move_request.chomp.split(',')
coords_array.each_with_index do |i, x|
return_array[x] = i.to_i
end
return_array
end
Ho il seguente test RSpec con esso.
it "translates a move request string into an array of coordinates" do
player_input = "3, 3, 5, 5"
translated_array = @game.translate_move_request_to_coordinates(player_input)
translated_array.should == [3, 3, 5, 5]
end
Il test passa, ma penso che il codice sia piuttosto brutto. Qualsiasi aiuto sarebbe apprezzato. Grazie.
Steve
move_request.split ("") del programma. (&: To_i) – tokland
+1: Non lo sapevo. Una interessante spiegazione è contenuta nel libro "Programming Ruby 1.9" di [Pragmatic Bookshelf] (http://pragprog.com/) nella sezione "The Symbol.to_proc Trick" a pagina 363 (4a stampa, maggio 2011). – lkuty