Sha256: 35e03f9c79efffe7b87425835fa2415b141a741dca6d6b2de672a79c4ae38fe9

Contents?: true

Size: 1 KB

Versions: 3

Compression:

Stored size: 1 KB

Contents

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::Cop
            MESSAGE = "Don't use single-line hook blocks.".freeze

            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

3 entries across 3 versions & 1 rubygems

Version Path
gitlab-styles-2.3.0 lib/gitlab/styles/rubocop/cop/rspec/single_line_hook.rb
gitlab-styles-2.2.0 lib/gitlab/styles/rubocop/cop/rspec/single_line_hook.rb
gitlab-styles-2.1.0 lib/gitlab/styles/rubocop/cop/rspec/single_line_hook.rb