Sha256: 7188b2c56cc4208a769730627e3ca0feb5da71382df685b4f0c923e35c16d671

Contents?: true

Size: 1.03 KB

Versions: 5

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true

require 'rubocop-rspec'

module Gitlab
  module Styles
    module Rubocop
      module Cop
        module RSpec
          # This cop checks for single-line hook blocks
          #
          # @example
          #
          #   # bad
          #   before { do_something }
          #   after(:each) { undo_something }
          #
          #   # good
          #   before do
          #     do_something
          #   end
          #
          #   after(:each) do
          #     undo_something
          #   end
          class SingleLineHook < RuboCop::Cop::RSpec::Cop
            MESSAGE = "Don't use single-line hook blocks."

            def_node_search :rspec_hook?, <<~PATTERN
              (send nil? {:after :around :before} ...)
            PATTERN

            def on_block(node)
              return unless node.single_line?
              return unless rspec_hook?(node)

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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
gitlab-styles-4.3.0 lib/gitlab/styles/rubocop/cop/rspec/single_line_hook.rb
gitlab-styles-4.2.0 lib/gitlab/styles/rubocop/cop/rspec/single_line_hook.rb
gitlab-styles-4.1.0 lib/gitlab/styles/rubocop/cop/rspec/single_line_hook.rb
gitlab-styles-4.0.0 lib/gitlab/styles/rubocop/cop/rspec/single_line_hook.rb
gitlab-styles-3.4.0 lib/gitlab/styles/rubocop/cop/rspec/single_line_hook.rb