Pourquoi Eclipse se plaignent de l'odeur « envy Feature » dans mon code? [fermé]
-
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
.
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