Rubocopエラー「Convert if nested inside else to elsif.」
●元のコード
def sample(引数1,引数2)
type = 引数1[TYPE]
if type == CARD
if 引数2.coupon_code_used_present?
COUPON_CARD
else
CARD
end
else
if 引数2.coupon_code_used_present?
COUPON_BANK
else
BANK
end
end
end
●書き換えたコード
def sample(引数1,引数2)
type = 引数1[TYPE]
if type == CARD
if 引数2.coupon_code_used_present?
COUPON_CARD
else
CARD
end
elsif 引数2.coupon_code_used_present?
COUPON_BANK
else
BANK
end
end
元のコードでは、
[1]もし、カードなら ①クーポンを使ったなら「クーポンとカード」 ②それ以外なら「カード」
[2]それ以外で ①クーポンを使ったなら「クーポンと銀行」 ②それ以外なら「銀行」
という構想だった。
これをifがネストし過ぎとrubocopに指摘されたので、以下のように修正した。
書き換えたコードでは、
[1]もし、カードなら ①クーポンを使ったなら「クーポンとカード」 ②それ以外なら「カード」
[2]もし、それ以外かつクーポンを使ったなら「クーポンと銀行」
[3]それ以外なら「銀行」