class RuboCop::Cop::RSpec::EmptyLineAfterSubject

Checks if there is an empty line after subject block.

@example

# bad
  subject(:obj) { described_class }
  let(:foo) { bar }

# good
  subject(:obj) { described_class }

  let(:foo) { bar }

Constants

MSG

Public Instance Methods

autocorrect(node) click to toggle source
# File lib/rubocop/cop/rspec/empty_line_after_subject.rb, line 33
def autocorrect(node)
  ->(corrector) { corrector.insert_after(node.loc.end, "\n") }
end
on_block(node) click to toggle source
# File lib/rubocop/cop/rspec/empty_line_after_subject.rb, line 22
def on_block(node)
  return unless subject?(node) && !in_spec_block?(node)
  return if node.equal?(node.parent.children.last)

  send_line = node.loc.end.line
  next_line = processed_source[send_line]
  return if next_line.blank?

  add_offense(node, location: :expression, message: MSG)
end

Private Instance Methods

in_spec_block?(node) click to toggle source
# File lib/rubocop/cop/rspec/empty_line_after_subject.rb, line 39
def in_spec_block?(node)
  node.each_ancestor(:block).any? do |ancestor|
    Examples::ALL.include?(ancestor.method_name)
  end
end