Методы запуска класса Ruby

У меня есть класс Ruby с методом, который в основном запускает список других методов внутри того же класса. Например:

def tidy
    delete_gallery_items
    delete_collections
    import_collections
    assign_albums_to_collections
    reorder_albums
    rebuild_gallery_items
    reposition_collections
end

Будут ли все они запускаться один за другим или может быть сценарий, когда один из более поздних запускается до завершения предыдущего?

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
46
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Один будет называться после другого. Невозможно, чтобы более поздний был вызван до того, как настала его очередь.

Я могу думать только о таком пограничном случае, когда эти методы внутренне запускают новые потоки, тогда более поздний метод может обрабатывать свой поток быстрее, чем более ранний метод. Но это не меняет того факта, что методы будут вызываться один за другим.

Ну ты и спросил.

class C
  def a
    self.class.alias_method :b_old, :b
    self.class.alias_method :c_old, :c
    self.class.alias_method :b, :c_old
    self.class.alias_method :c, :b_old
    puts "a"
  end

  def b
    puts "b"
  end

  def c
    puts "c"
  end

  def tidy
    a
    b
    c
  end
end
C.new.tidy
  #=> nil

отображает:

a
c
b

Я считаю, что это также отвечает на вопрос: «Должен ли я что-то делать только потому, что я могу?»

Chris 10.04.2022 04:07

Другие вопросы по теме