Ruby 为什么Eclipse会抱怨;特写“嫉妒”;我的代码里有气味吗?

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 我的理解是,我可以忽略这个

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

我的理解是,我可以忽略这个警告。但我不明白为什么会产生这个警告。我无法理解如何提取
$1.size
的方法,并且
$1

Reek告诉您,由于您添加的是同一类的两个属性,因此计算实际上应该属于
字符串。当添加字符串长度时,这当然是无稽之谈,但在您的情况下,可以使用
$&
(完整匹配的字符串)简化代码:


你能多发一点周围的代码吗?我曾尝试过将此输入到reek,但无法让它抱怨功能嫉妒-谢谢你,请发布整个方法,以及reek警告消息的全文?我无法用当前版本的reek报告FeatureEnvy。严格来说,这不是真的。首先,Reek不报告上述代码的FeatureEnvy。其次,$1和$2是不同的对象,所以Reek不会建议将此代码移到这两个对象上。
input_text[$&.size..-1]