呼び出されたブロック内で呼び出されたオブジェクトを取得する方法はありますか。たとえば、ブロックがメソッド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)