Перегрузить каждый метод порядком - PullRequest
2 голосов
/ 19 апреля 2011

У меня есть шаблон erb, который генерирует файл конфигурации для httpd.

Важно, чтобы конкретное местоположение записывалось последним (это все поймать)

На данный момент кодвыглядит как

cluster.apps.each do |app|
  # Render config
end

Я бы хотел перегрузить каждый метод объекта приложения, чтобы гарантировать порядок.Как лучше всего начать искать, как это сделать?

1 Ответ

4 голосов
/ 19 апреля 2011

Если вы хотите его перегрузить, вы можете сделать что-то вроде

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

А с текущей реализацией, приведенной выше, она выдаст все элементы (кроме первого) подряд. Последний сданный предмет - первый сдвинутый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...