我有以下错误:
tests @action.placed.!=(true) at least 3 times (RepeatedConditional)
从以下代码生成:
def left
super unless @action.placed != true
end
def right
super unless @action.placed != true
end
def move_forward
super unless @action.placed != true
end
我们如何摆脱这种重复?
答案 0 :(得分:0)
别名是否有效?
alias :right :left
alias :move_forward :left
答案 1 :(得分:0)
我认为这最能解释:https://github.com/troessner/reek/blob/master/lib/reek/report/code_climate/code_climate_configuration.yml#L619。因为你的对象多次检查相同的条件,所以它可能扮演2个对象的角色并且缺少抽象。
解决方案可能是创建两个类,一个@action.placed
始终为真,另一个不总是真。另一个可能是提升逻辑。或者可能只是将这些方法组合成1.理想情况下,目标只是必须检查一次。