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