Ваша проблема в том, что методы вашего сервера ничего не возвращают:
def myserver1
puts "Sending email from myserver1 with address #{@address}"
end
Этот метод выводит сообщение и возвращает nil
. puts
всегда возвращает nil
.
Таким образом, когда вы делаете [myserver1, myserver2]
, он печатает два сообщения и возвращает [nil, nil]
.
Серверы - это вещи, они, вероятно, должны быть объектами, а не методами. Методы - это действия, которые делают и / или возвращают что-либо. Попробуйте что-то вроде этого:
class Server
def initialize(name)
@name = name
end
def send_address(address)
puts "Sending email from #{@name} with address #{address}"
end
end
addresses = %w(me@gmail.com me2@gmail.com me3@gmail.com)
servers = [Server.new("server one"), Server.new("server two")]
addresses.each_with_index do |address, i|
server = servers[i % servers.length]
server.send_address(address)
end