Как передать блоки между переменными и классами - PullRequest
0 голосов
/ 08 апреля 2020

Есть ли способ передать блоки между различными переменными экземпляра и экземпляра класса среди разных классов?

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

Создание генерирующего класса:

class Foo

  def initialize
    @clicks_enabled = false
    @@click_args
  end


  def create_bar
    @obj = Bar.new
    self
  end

  def execute_click_method
    @obj.click_method{ @@click_args } if @clicks_enabled
  end

  def get_click_args(&block)
    @clicks_enabled = true
    @@click_args = block
    execute_click_method
  end

end

Создание нового объекта класса

class Bar
  @click_args

  def initialize
    @obj = []
  end

  def click_method(&block)
    @click_args = block
    execute_args { @click_args }
  end

  def execute_args
    yield
  end

end

Создание объекта Bar через Foo, затем передача блока в Foo, который в конечном итоге будет запустить внутри объекта Bar.

new_obj = Foo.new.create_bar
new_obj.get_click_args {puts 'some_methods_here'}

Печать yield в def execute_args дает мне <Proc:0x22be6a0@-:->, однако, просто сдача не оставляет результатов.

...