我有一个用于使用随机数据填充数据库的Populater类。我想用rtui进度条测量populator的run方法。但是,不是在Populater类中调用进度条对象,而是在调用Populater类中的某些方法时,我希望有第三个类来增加进度条。我想到的代码是这样的:
@populator = Populator.new
@pb = ProgressBar.new
Watcher.watch(@populator, :before, :add_record) do
@pb.subject = "Adding a record..."
@pb.inc
end
Watcher会在执行@ populator.add_record之前调用监视块。
实施此方法的最佳方式是什么?
答案 0 :(得分:1)
您可能需要查看RCapture,这是一个允许使用简单且一致的界面在方法上放置挂钩的Ruby库。
了Christoph
答案 1 :(得分:0)
我建议您查看observer pattern。在真正需要之前我会避免使用花哨的动态技巧,观察者模式很简单且很容易理解。
还要检查ruby的stdlib中的Observable class。
答案 2 :(得分:0)
这不会只是这样做:
def watch(populator, when, dowhat)
yield
populator.add_record
end
希望这会有所帮助......