Ruby 为什么Eclipse会抱怨;特写“嫉妒”;我的代码里有气味吗?
Eclipse(RedRails)在以下代码中抱怨“”:Ruby 为什么Eclipse会抱怨;特写“嫉妒”;我的代码里有气味吗?,ruby,reek,feature-envy,Ruby,Reek,Feature Envy,Eclipse(RedRails)在以下代码中抱怨“”: if input_text =~ /^(---\s*\n.*?\n?)(---.*?)/m content_text = input_text[($1.size + $2.size)..-1] # warning in $1 header = YAML.load($1) @content = content_text.strip() @title = header["title"] end 我的理解是,我可以忽略这个
if input_text =~ /^(---\s*\n.*?\n?)(---.*?)/m
content_text = input_text[($1.size + $2.size)..-1] # warning in $1
header = YAML.load($1)
@content = content_text.strip()
@title = header["title"]
end
我的理解是,我可以忽略这个警告。但我不明白为什么会产生这个警告。我无法理解如何提取
$1.size
的方法,并且$1
Reek告诉您,由于您添加的是同一类的两个属性,因此计算实际上应该属于字符串。当添加字符串长度时,这当然是无稽之谈,但在您的情况下,可以使用$&
(完整匹配的字符串)简化代码:
你能多发一点周围的代码吗?我曾尝试过将此输入到reek,但无法让它抱怨功能嫉妒-谢谢你,请发布整个方法,以及reek警告消息的全文?我无法用当前版本的reek报告FeatureEnvy。严格来说,这不是真的。首先,Reek不报告上述代码的FeatureEnvy。其次,$1和$2是不同的对象,所以Reek不会建议将此代码移到这两个对象上。
input_text[$&.size..-1]