Я не уверен, возможно ли это на самом деле, но я нигде не смог найти четкого ответа.Также мне трудно определить мой вопрос просто в «поисковых терминах».Поэтому я извиняюсь, если на этот вопрос уже ответили где-то еще, я не смог его найти.
Я хотел бы знать, возможно ли создать Proc, который содержит метод, который не определен вместо, где определяется Proc.Затем я хотел бы поместить этот экземпляр в другой класс, у которого есть метод, и запустить ТО с указанными аргументами.
Вот пример того, чего я хочу достичь, но не знаю как.
class MyClassA
# This class does not have the #run method
# but I want Class B to run the #run method that
# I invoke from within the Proc within this initializer
def initialize
Proc.new { run 'something great' }
end
end
class MyClassB
def initialize(my_class_a_object)
my_class_a_object.call
end
# This is the #run method I want to invoke
def run(message)
puts message
end
end
# This is what I execute
my_class_a_object = MyClassA.new
MyClassB.new(my_class_a_object)
Произошла следующая ошибка
NoMethodError: undefined method for #<MyClassA:0x10017d878>
И я думаю, я понимаю почему, это потому, что он пытается вызвать метод run
в экземпляре MyClassA
чем тот, что в MyClassB
.Однако есть ли способ заставить команду run
вызвать метод экземпляра MyClassB
run
?