Как сделать вызываемый атрибут в Ruby

Я не знаю, как это гуглить, но я знаю, чего 9X_ruby хочу.

хочу сделать что-то подобное

class SchedulingManager
  attr_accessor :on_start

  def call
    on_start
  end
end

scheduling = SchedulingManager.new
scheduling.on_start do
  puts "hello"
end

поэтому 9X_ruby я хочу, чтобы мой on_start инициировался в стиле 9X_ruby do block. и сохраните его, чтобы я мог вызвать 9X_ruby метод call и вывести приветствие (или выполнить 9X_ruby любой другой код в блоке).

я не знаю, как 9X_ruby это называется, я также не знаю, как это 9X_ruby гуглить.

Пожалуйста, нужна ваша помощь, ребята, спасибо

4
0
1
Общее количество ответов: 1

Ответ #1

Ответ на вопрос: Как сделать вызываемый атрибут в Ruby

Я бы сделал так и сохранил бы блок в переменной.

class SchedulingManager
  def on_start(&block)
    @block = block
  end

  def call
    @block&.call
  end
end

scheduling = SchedulingManager.new
scheduling.on_start do
  puts "hello"
end

scheduling.call
#=> hello

9X_ruby

17
0