Sha256: 293e3042a794752ee58ce9a22b1703f8bbfea711cee944745500004ea4d57bd4

Contents?: true

Size: 788 Bytes

Versions: 30

Compression:

Stored size: 788 Bytes

Contents

# frozen_string_literal: true

module RuboCop
  # This class wraps the `Parser::Source::Comment` object that represents a
  # special `rubocop:disable` and `rubocop:enable` comment and exposes what
  # cops it contains.
  class DirectiveComment
    attr_reader :comment

    def initialize(comment)
      @comment = comment
    end

    # Return all the cops specified in the directive
    def cops
      match = comment.text.match(CommentConfig::COMMENT_DIRECTIVE_REGEXP)
      return unless match

      cops_string = match.captures[1]
      cops_string.split(/,\s*/).uniq.sort
    end

    # Checks if this directive contains all the given cop names
    def match?(cop_names)
      cops == cop_names.uniq.sort
    end

    def range
      comment.location.expression
    end
  end
end

Version data entries

30 entries across 30 versions & 2 rubygems

Version Path
plaid-14.13.0 vendor/bundle/ruby/3.0.0/gems/rubocop-0.91.1/lib/rubocop/directive_comment.rb
plaid-14.12.1 vendor/bundle/ruby/3.0.0/gems/rubocop-0.91.1/lib/rubocop/directive_comment.rb
plaid-14.12.0 vendor/bundle/ruby/2.6.0/gems/rubocop-0.91.1/lib/rubocop/directive_comment.rb
plaid-14.11.1 vendor/bundle/ruby/2.6.0/gems/rubocop-0.91.1/lib/rubocop/directive_comment.rb
plaid-14.10.0 vendor/bundle/ruby/2.6.0/gems/rubocop-0.91.1/lib/rubocop/directive_comment.rb
plaid-14.7.0 vendor/bundle/ruby/2.6.0/gems/rubocop-0.91.1/lib/rubocop/directive_comment.rb
rubocop-1.11.0 lib/rubocop/directive_comment.rb
rubocop-1.10.0 lib/rubocop/directive_comment.rb
rubocop-1.9.1 lib/rubocop/directive_comment.rb
rubocop-1.9.0 lib/rubocop/directive_comment.rb
rubocop-1.8.1 lib/rubocop/directive_comment.rb
rubocop-1.8.0 lib/rubocop/directive_comment.rb
rubocop-1.7.0 lib/rubocop/directive_comment.rb
rubocop-1.6.1 lib/rubocop/directive_comment.rb
rubocop-1.6.0 lib/rubocop/directive_comment.rb
rubocop-1.5.2 lib/rubocop/directive_comment.rb
rubocop-1.5.1 lib/rubocop/directive_comment.rb
rubocop-1.5.0 lib/rubocop/directive_comment.rb
rubocop-1.4.2 lib/rubocop/directive_comment.rb
rubocop-1.4.1 lib/rubocop/directive_comment.rb