Вероятно, было бы лучше сохранить это в переменной экземпляра класса.Но не имея больше контекста, но в основном у вас есть ваша информация в массиве, вы должны посмотреть, какой последний счетчик был установлен:
def take_a_number(array)
if array.empty?
counter = 1
else
counter = array.last + 1
end
array << counter
counter
end
Вы можете сократить этот оператор до этого:
def take_a_number(array)
counter = array.empty? ? 1 : array.last + 1
array << counter
counter
end
Другим способом было бы просто посмотреть на длину массива:
def take_a_number(array)
counter = array.length + 1
array << counter
counter
end
Или вы можете даже написать это короче:
def take_a_number(array)
array << array.length+1
array.length
end
Но, как я сказал наДля начала было бы лучше упаковать все это вместе в модель, тогда вы можете использовать переменные экземпляра
class Queue
def initialize
@list = []
@current_number = 0
end
def take_a_number
@current_number += 1
@list << @current_number
@current_number
end
def take_turn
@list.shift
end
end
waiting_line_1 = Queue.new #get a new queue, you could have multiple ones...
waiting_line_1.take_a_number #first person takes a number
waiting_line_1.take_a_number #second person takes a number
waiting_line_1.take_turn #first person takes a turn / is called