fuckマジックナンバー
やりたい事:質問項目をkeyに、その回答をvalueに入れた @answeresというハッシュがあり、そのキーの一部の(必須回答項目)valueがnilでないかチェックする.
【俺のコード】
kuso-code.rb
necessary_answers = [@answers["reason"], @answers["select_1"], @answers["select_2"],
@answers["select_3"], @answers["select_4"], @answers["select_5"],
@answers["select_6"], @answers["select_7"]]
if necessary_answers.compact.reject(&:empty?).size == 8
*以下処理
「マジックナンバーが含まれてるし、新しく回答必須項目を増やしたり変更する時に大変。くそコード」
「そもそも長いし、反復表現がある。くそコード」
【良いコード】
good-code.rb
class上部で定数定義
NECESSARY_ANS = ["reason", "select_1", "select_2", "select_3", "select_4", "select_5", "select_6", "select_7"]
.
.
.
.
tmp = NECESSARY_ANS.map{|key| @answers[key]}.any?(&:blank?)
# またはtmp = @answers.values_at(*NECESSARY_ANS).any?(&:blank?)
if tmp
*以下処理