Class: RuboCop::Cop::Lecture::ReplaceElsif
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Lecture::ReplaceElsif
- Extended by:
- AutoCorrector
- Defined in:
- lib/rubocop/cop/lecture/replace_elsif.rb
Overview
‘elsif`は`case`で書き換え可能です。 N個の分岐から1つ選ぶ「N者択一」のときはcaseをつかうと読みやすくなります。
Constant Summary collapse
- MSG =
<<~STRING `elsif`は`case`で書き換え可能です。 N個の分岐から1つ選ぶ「N者択一」のときはcaseをつかうと読みやすくなります。 たとえば、elsifをつかった次のようなコードがあるとき、 if x == 1 elsif y == 2 else end caseをつかうと次のように書き換えられます。 case when x == 1 when y == 2 else end 同じ変数の値で分岐するときは次のようにも書けます。 case x when 1 when 2 else end STRING
Instance Method Summary collapse
Instance Method Details
#on_if(node) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/rubocop/cop/lecture/replace_elsif.rb', line 64 def on_if(node) return unless node.elsif? add_offense(node) do |corrector| # if => case when replacing_string = "case" + "\n" + " " * node.parent.source_range.column + "when" corrector.replace(node.parent.loc.keyword, replacing_string) corrector.replace(node.loc.keyword, "when") # elsif => when end end |