class RuboCop::Cop::Style::RescueModifier

This cop checks for uses of rescue in its modifier form.

def autocorrect(node)

def autocorrect(node)
  operation, rescue_modifier, = *node
  *_, rescue_args = *rescue_modifier
  indent = indentation(node)
  correction =
    "begin\n" \
    "#{operation.source.gsub(/^/, indent)}" \
    "\n#{offset(node)}rescue\n" \
    "#{rescue_args.source.gsub(/^/, indent)}" \
    "\n#{offset(node)}end"
  lambda do |corrector|
    corrector.replace(node.source_range, correction)
  end
end

def investigate(processed_source)

def investigate(processed_source)
  @modifier_locations = processed_source
                        .tokens
                        .select { |t| t.type == :kRESCUE_MOD }
                        .map(&:pos)
end

def modifier?(node)

def modifier?(node)
  @modifier_locations.include?(node.loc.keyword)
end

def on_resbody(node)

def on_resbody(node)
  return unless modifier?(node)
  add_offense(node.parent, :expression)
end