class RuboCop::DirectiveComment
cops it contains.
special ‘rubocop:disable` and `rubocop:enable` comment and exposes what
This class wraps the `Parser::Source::Comment` object that represents a
def self.before_comment(line)
def self.before_comment(line) line.split(DIRECTIVE_COMMENT_REGEXP).first end
def all_cop_names
def all_cop_names Cop::Registry.global.names - [REDUNDANT_COP] end
def all_cops?
def all_cops? cops == 'all' end
def cop_names
def cop_names @cop_names ||= all_cops? ? all_cop_names : parsed_cop_names end
def disabled?
def disabled? %w[disable todo].include?(mode) end
def enabled?
def enabled? mode == 'enable' end
def enabled_all?
def enabled_all? !disabled? && all_cops? end
def initialize(comment)
def initialize(comment) @comment = comment @mode, @cops = match_captures end
def line_number
def line_number comment.loc.expression.line end
def match?(cop_names)
def match?(cop_names) parsed_cop_names.uniq.sort == cop_names.uniq.sort end
def match_captures
def match_captures @match_captures ||= comment.text.match(DIRECTIVE_COMMENT_REGEXP)&.captures end
def parsed_cop_names
def parsed_cop_names (cops || '').split(/,\s*/) end
def range
def range comment.location.expression end
def single_line?
def single_line? !self.class.before_comment(comment.text).empty? end