【发布时间】:2017-06-10 02:28:06
【问题描述】:
我有这样一行代码
"#{envelope_quantity} - envelope #{Budget::util_name(envelope_size)} #{Budget::util_name(envelope_paper)} #{Budget::util_name(envelope_color)} #{Budget::util_name(envelope_grammage)} #{Budget::util_name(envelope_model)} #{Budget::util_name(envelope_print)}"
太长了,读起来很糟糕,这就是 RuboCop 用 Metrics::LineLength 警告我的原因。
我想将它重构为不长线。
我知道很多方法可以做到这一点,但我想知道哪一种是红宝石风格专家所期望的。
当我需要一个空字符串(如果它是 nil)时,需要那个静态方法 util_name 来防止 nil。
def self.util_name(value)
return '' if value.nil?
value.name
end
【问题讨论】:
-
没有任何上下文,在这里很难给出建议。我将如何处理这在很大程度上取决于所讨论的对象以及它们之间的关系。这段代码的
self对象是什么?为什么它为所有事情都调用Budget::util_name?这是一种独立的命名方法还是更大逻辑的一部分? -
嘿@AdamLassek,谢谢你。我编辑我的问题来解释 util 方法,你的其他问题我真的不明白,或者如果我有我将不得不解释这个应用程序的很多内容
-
这段代码用于 pdf 报告,如果有帮助,用于上下文
标签: ruby-on-rails ruby ruby-on-rails-4 ruby-style-guide