我有很多这样的方法:
def enableMotors
@posIface.Lock 1
@posIface.data.cmdEnableMotors = 1
@posIface.Unlock
end
def goTo (pos)
@posIface.Lock 1
@posIface.data.cmdVelocity.pos = pos
@posIface.Unlock
end
我想创建功能到:before_filter和:after_filter或任何其他方式,我可以保持代码尽可能干燥。
我不想只靠铁轨或其他沉重的东西。
最佳答案
你真的需要一个完整的:前:后回调系统还是这足够你?
def with_lock(&block)
@posIface.Lock 1
yield
@posIface.Unlock
end
def enableMotors
with_lock { @posIface.data.cmdEnableMotors = 1 }
end
def goTo (pos)
with_lock { @posIface.data.cmdVelocity.pos = pos }
end