Sha256: 29763704243e102a92843cdfbf4c4c517cfbb4790d343be08efc924a3c5d778d
Contents?: true
Size: 1.8 KB
Versions: 1
Compression:
Stored size: 1.8 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Style # This cop enforces empty line after guard clause # # @example # # # bad # def foo # return if need_return? # bar # end # # # good # def foo # return if need_return? # # bar # end # # # good # def foo # return if something? # return if something_different? # # bar # end # # # also good # def foo # if something? # do_something # return if need_return? # end # end class EmptyLineAfterGuardClause < Cop include RangeHelp MSG = 'Add empty line after guard clause.'.freeze def on_if(node) return unless contains_guard_clause?(node) return if node.parent.nil? || node.parent.single_line? return if next_sibling_empty_or_guard_clause?(node) return if next_line_empty?(node) add_offense(node) end def autocorrect(node) lambda do |corrector| node_range = range_by_whole_lines(node.source_range) corrector.insert_after(node_range, "\n") end end private def contains_guard_clause?(node) node.if_branch && node.if_branch.guard_clause? end def next_line_empty?(node) processed_source[node.last_line].blank? end def next_sibling_empty_or_guard_clause?(node) next_sibling = node.parent.children[node.sibling_index + 1] return true if next_sibling.nil? next_sibling.if_type? && contains_guard_clause?(next_sibling) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rubocop-0.53.0 | lib/rubocop/cop/style/empty_line_after_guard_clause.rb |