Perché Eclipse lamentano dell'odore “Funzione invidia” nel mio codice? [chiuso]
-
19-09-2019 - |
Domanda
Eclipse (RedRails) lamentano " Caratteristica invidia "nel codice seguente:
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
La mia comprensione è che io sicuro di ignorare questo avviso. Ma sto vagando per cui viene generato questo avviso. Non riesco a capire come posso estrarre metodo per $1.size
e $1
.
Soluzione
Reek vi sta dicendo che, perché si sta aggiungendo due proprietà della stessa classe, il calcolo dovrebbe in realtà appartenere a String
. Quando si aggiunge lunghezze di stringa questa è una sciocchezza, ovviamente, ma nel tuo caso il codice possono essere semplificata utilizzando $&
(la stringa corrispondente completo):
input_text[$&.size..-1]
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow