class RubocopChallenger::Rubocop::Rule
Parse rubocop rule which loaded from Rubocop::TodoReader
class
Attributes
contents[R]
offense_count[R]
title[R]
Public Class Methods
new(contents)
click to toggle source
# File lib/rubocop_challenger/rubocop/rule.rb, line 11 def initialize(contents) @contents = contents.dup @title = extract_title @offense_count = extract_offense_count end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/rubocop_challenger/rubocop/rule.rb, line 25 def <=>(other) offense_count <=> other.offense_count end
==(other)
click to toggle source
Compare to other rule
@param other [Rule] Target of comparison @return [Boolean] Return true in case of coincidence
# File lib/rubocop_challenger/rubocop/rule.rb, line 21 def ==(other) title == other.title end
auto_correctable?()
click to toggle source
# File lib/rubocop_challenger/rubocop/rule.rb, line 29 def auto_correctable? contents.include?('# Cop supports --auto-correct') end
rubydoc_url()
click to toggle source
# File lib/rubocop_challenger/rubocop/rule.rb, line 33 def rubydoc_url if title.start_with?('RSpec') "https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/#{title}" else "https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/#{title}" end end
Private Instance Methods
extract_offense_count()
click to toggle source
# File lib/rubocop_challenger/rubocop/rule.rb, line 48 def extract_offense_count contents =~ /# Offense count: (\d+)/ Regexp.last_match(1).to_i end
extract_title()
click to toggle source
# File lib/rubocop_challenger/rubocop/rule.rb, line 43 def extract_title contents =~ /^([^# ].+):$/ Regexp.last_match(1) end