Если вы хотите его перегрузить, вы можете сделать что-то вроде
class Cluster
#..code
def each_application
return unless block_given? #ensure a block was given
a = @apps.shift #Implement this to grab the element you want
@apps.each{|x| yield x}
yield a #yield the element that you want last
end
end
Теперь вы можете сделать:
cluster.each_application do |app|
#Render config
end
А с текущей реализацией, приведенной выше, она выдаст все элементы (кроме первого) подряд. Последний сданный предмет - первый сдвинутый.