class Reek::CLI::Command::TodoListCommand
A command to collect smells from a set of sources and writes a configuration file that can serve as a todo list.
Constants
- EXISTING_FILE_MESSAGE
- HEADER
- NO_SMELLS_FOUND_MESSAGE
Public Instance Methods
Source
# File lib/reek/cli/command/todo_list_command.rb, line 19 def execute if smells.empty? puts NO_SMELLS_FOUND_MESSAGE elsif File.exist?(DEFAULT_CONFIGURATION_FILE_NAME) puts EXISTING_FILE_MESSAGE else write_to_file puts "\n'#{DEFAULT_CONFIGURATION_FILE_NAME}' generated! " \ 'You can now use this as a starting point.' end options.success_exit_code end
Private Instance Methods
Source
# File lib/reek/cli/command/todo_list_command.rb, line 51 def grouped_smells @grouped_smells ||= smells.group_by(&:smell_type) end
Source
# File lib/reek/cli/command/todo_list_command.rb, line 40 def groups @groups ||= begin todos = DetectorRepository.smell_types.map do |smell_class| smells_for_class = grouped_smells[smell_class.smell_type] or next smell_class.todo_configuration_for(smells_for_class) end todos.compact.inject(&:merge) end end
Source
# File lib/reek/cli/command/todo_list_command.rb, line 34 def smells @smells ||= sources.map do |source| Examiner.new(source, filter_by_smells: smell_names) end.map(&:smells).flatten end
Source
# File lib/reek/cli/command/todo_list_command.rb, line 56 def write_to_file File.open(DEFAULT_CONFIGURATION_FILE_NAME, 'w') do |configuration_file| configuration_file.write HEADER configuration_file.write({ DETECTORS_KEY => groups }.to_yaml) end end
:reek: FeatureEnvy