class RubocopChallenger::Rubocop::Challenge
Attributes
command[R]
mode[R]
only_safe_auto_correct[R]
todo_reader[R]
todo_writer[R]
Public Class Methods
exec(file_path:, mode:, only_safe_auto_correct:)
click to toggle source
# File lib/rubocop_challenger/rubocop/challenge.rb, line 7 def self.exec(file_path:, mode:, only_safe_auto_correct:) new(file_path, mode, only_safe_auto_correct).send(:exec) end
new(file_path, mode, only_safe_auto_correct)
click to toggle source
# File lib/rubocop_challenger/rubocop/challenge.rb, line 15 def initialize(file_path, mode, only_safe_auto_correct) @mode = mode @only_safe_auto_correct = only_safe_auto_correct @command = Rubocop::Command.new @todo_reader = Rubocop::TodoReader.new(file_path) @todo_writer = Rubocop::TodoWriter.new(file_path) end
Private Instance Methods
exec()
click to toggle source
@raise [Errors::NoAutoCorrectableRule]
# File lib/rubocop_challenger/rubocop/challenge.rb, line 24 def exec verify_target_rule todo_writer.delete_rule(target_rule) command.auto_correct(only_safe_auto_correct: only_safe_auto_correct) target_rule end
target_rule()
click to toggle source
# File lib/rubocop_challenger/rubocop/challenge.rb, line 37 def target_rule @target_rule ||= case mode when 'least_occurrence' then todo_reader.least_occurrence_rule when 'random' then todo_reader.any_rule when 'most_occurrence' then todo_reader.most_occurrence_rule else raise "`#{mode}` is not supported mode" end end
verify_target_rule()
click to toggle source
# File lib/rubocop_challenger/rubocop/challenge.rb, line 31 def verify_target_rule return unless target_rule.nil? raise Errors::NoAutoCorrectableRule end