Рефакторинг Ruby: преобразование строкового массива в массив int

Я занимаюсь рефакторингом шашечной программы и пытаюсь обработать запрос на перемещение игроков (в форме «3, 3, 5, 5»). "например) в массив int. У меня есть следующий метод, но он не кажется таким Ruby-подобным, каким я мог бы быть:

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

У меня есть следующий тест RSpec с ним.

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 

Тест пройден, но я считаю код довольно некрасивым. Любая помощь будет оценена по достоинству. Спасибо.

Стив

5
задан steve_gallagher 25 October 2011 в 16:18
поделиться