2

我有以下错误:

  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

我们将如何摆脱这种重复?

4

2 回答 2

0

别名会起作用吗?

alias :right :left
alias :move_forward :left
于 2014-07-24T08:35:34.003 回答
0

我认为这解释得最好:https ://github.com/troessner/reek/blob/master/lib/reek/report/code_climate/code_climate_configuration.yml#L619 。因为您的对象多次检查相同的条件,所以它可能承担了 2 个对象的角色并且缺少抽象。

解决方案可能是创建 2 个类,一个@action.placed始终为真,一个不总是为真。另一个可能是向上移动逻辑。或者也许只是将这些方法组合成 1。理想情况下,目标是只需要检查一次该条件。

于 2018-03-10T20:32:22.090 回答