Sha256: 054c74e2ea901793c46ba1752e83ad22ccb8a1d9359010578056926fe11774ad

Contents?: true

Size: 680 Bytes

Versions: 11

Compression:

Stored size: 680 Bytes

Contents

# frozen_string_literal: true

require 'rubocop'

module RuboCop
  module Cop
    module Sorbet
      # Abstract cop specific to Sorbet signatures
      #
      # You can subclass it to use the `on_signature` trigger and the `signature?` node matcher.
      class SignatureCop < RuboCop::Cop::Cop
        @registry = Cop.registry # So we can properly subclass this cop

        def_node_matcher(:signature?, <<~PATTERN)
          (block (send nil? :sig) (args) ...)
        PATTERN

        def on_block(node)
          on_signature(node) if signature?(node)
        end

        def on_signature(_)
          # To be defined in subclasses
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
rubocop-sorbet-0.6.2 lib/rubocop/cop/sorbet/signatures/signature_cop.rb
rubocop-sorbet-0.6.1 lib/rubocop/cop/sorbet/signatures/signature_cop.rb
rubocop-sorbet-0.6.0 lib/rubocop/cop/sorbet/signatures/signature_cop.rb
rubocop-sorbet-0.5.1 lib/rubocop/cop/sorbet/signatures/signature_cop.rb
rubocop-sorbet-0.5.0 lib/rubocop/cop/sorbet/signatures/signature_cop.rb
rubocop-sorbet-0.4.1 lib/rubocop/cop/sorbet/signatures/signature_cop.rb
rubocop-sorbet-0.4.0 lib/rubocop/cop/sorbet/signatures/signature_cop.rb
rubocop-sorbet-0.3.7 lib/rubocop/cop/sorbet/signatures/signature_cop.rb
rubocop-sorbet-0.3.6 lib/rubocop/cop/sorbet/signatures/signature_cop.rb
rubocop-sorbet-0.3.5 lib/rubocop/cop/sorbet/signatures/signature_cop.rb
rubocop-sorbet-0.3.4 lib/rubocop/cop/sorbet/signatures/signature_cop.rb