Warum beschweren Eklipse über „Feature-Neid“ Geruch in meinem Code? [geschlossen]

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

  •  19-09-2019
  •  | 
  •  

Frage

Eclipse-(RedRails) beschweren sich über „ Eigenschaft Neid "in dem folgenden Code:

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

Mein Verständnis ist, dass ich sicher diese Warnung zu ignorieren. Aber ich wandern, warum diese Warnung erzeugt wird. Ich kann nicht verstehen, wie ich Methode für $1.size und $1 extrahieren kann.

War es hilfreich?

Lösung

Reek sagt Ihnen, dass, weil Sie zwei Eigenschaften der gleichen Klasse hinzufügen, sollte die Berechnung tatsächlich in String gehören. Wenn Stringlängen Zugabe ist dies natürlich Unsinn, aber in Ihrem Fall der Code können durch die Verwendung $& vereinfacht werden (die vollständige angepasst string):

input_text[$&.size..-1]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top