LoginSignup
0
0

More than 1 year has passed since last update.

Rubocopエラー「Convert if nested inside else to elsif.」の解決例

Posted at

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]それ以外なら「銀行」

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0