Pourquoi Eclipse se plaignent de l'odeur « envy Feature » dans mon code? [fermé]

StackOverflow https://stackoverflow.com/questions/1178185

  •  19-09-2019
  •  | 
  •  

Question

Eclipse (RedRails) se plaignent « envie Feature "dans le code suivant:

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

Si je comprends bien que je sûr d'ignorer cet avertissement. Mais je promenais pourquoi cet avertissement est généré. Je ne comprends pas comment je peux extraire la méthode pour $1.size et $1.

Était-ce utile?

La solution

Reek vous dit que, parce que vous ajoutez deux propriétés de la même classe, le calcul doit appartenir effectivement à String. Lorsque vous ajoutez des longueurs de chaîne cela est absurde bien sûr, mais dans votre cas, le code peut être simplifiée à l'aide $& (la chaîne complète adaptée):

input_text[$&.size..-1]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top