Perché Eclipse lamentano dell'odore “Funzione invidia” nel mio codice? [chiuso]

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

  •  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.

È stato utile?

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
scroll top