class RuboCop::Cop::Style::InPatternThen
end
in pattern_b then bar
in pattern_a then foo
case expression
# good
end
in pattern_b; bar
in pattern_a; foo
case expression
# bad
@example
Checks for ‘in;` uses in `case` expressions.
def alternative_pattern_source(pattern)
def alternative_pattern_source(pattern) return pattern.children.map(&:source) unless pattern.children.first.match_alt_type? pattern_sources = alternative_pattern_source(pattern.children.first) (pattern_sources << pattern.children[1].source).join(' | ') end
def on_in_pattern(node)
def on_in_pattern(node) return if node.multiline? || node.then? || !node.body pattern = node.pattern pattern_source = if pattern.match_alt_type? alternative_pattern_source(pattern) else pattern.source end add_offense(node.loc.begin, message: format(MSG, pattern: pattern_source)) do |corrector| corrector.replace(node.loc.begin, ' then') end end