0

Eclipse (RedRails)は、次のコードで「 Feature envy 」について不満を述べています。

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

4

1 に答える 1

2

Reek は、同じクラスの 2 つのプロパティを追加しているので、計算は実際には に属する必要があると言っていますString。文字列の長さを追加する場合、これはもちろんナンセンスですが、あなたの場合、(完全に一致した文字列)を使用してコードを簡略化できます。$&

input_text[$&.size..-1]
于 2009-07-24T15:38:24.227 に答える