我有一个类似于 DSL 的 Ruby 代码,如下所示:
Activity.new('20-06-2012') do
Eat.log do |l|
l.duration = 0.30
l.priority = 5
end
Work.log do |l|
l.duration = 2
l.priority = 3
end
end
每次调用 log() 方法时,都会实例化一个 Log 对象(在幕后),并将块传递给该方法(该块传递给 Log 对象的构造函数)。我的问题是,有没有办法从 log() 方法收集所有返回?在上面的示例中,最外层块的返回值是对 log() 的最后一次调用。但我想在一个数组中获取所有调用的结果,而不仅仅是最后一个。
谢谢!