Есть ли способ получить вызываемый объект внутри вызываемого блока. Например, есть ли способ для блоков получить доступ к области действия метода batman
или класса SuperHeros
?
class SuperHeros
attr_accessor :news
def initialize
@news = []
end
def batman task
puts "Batman: #{task} - done"
yield "feed cat"
@news << task
end
end
cat_woman = lambda do |task|
puts "Cat Woman: #{task} - done"
# invoker.news << task
end
robin = lambda do |task|
puts "Robin: #{task} - done"
# invoker.news << task
end
characters = SuperHeros.new
characters.batman("kick Joker's ass", &cat_woman)
characters.batman("break Bane's bones", &robin)