class RuboCop::CLI::Command::ShowCops
Shows the given cops, or all cops by default, and their configurations for the current directory. @api private
Constants
- ExactMatcher
- WildcardMatcher
Public Class Methods
Source
# File lib/rubocop/cli/command/show_cops.rb, line 24 def initialize(env) super # Load the configs so the require()s are done for custom cops @config = @config_store.for(Dir.pwd) @cop_matchers = @options[:show_cops].map do |pattern| if pattern.include?('*') WildcardMatcher.new(pattern) else ExactMatcher.new(pattern) end end end
Calls superclass method
RuboCop::CLI::Command::Base::new
Public Instance Methods
Private Instance Methods
Source
# File lib/rubocop/cli/command/show_cops.rb, line 89 def config_lines(cop) cnf = @config.for_cop(cop) cnf.to_yaml.lines.to_a.drop(1).map { |line| " #{line}" } end
Source
# File lib/rubocop/cli/command/show_cops.rb, line 85 def cops_of_department(cops, department) cops.with_department(department).sort! end
Source
# File lib/rubocop/cli/command/show_cops.rb, line 45 def print_available_cops registry = Cop::Registry.global show_all = @cop_matchers.empty? puts "# Available cops (#{registry.length}) + config for #{Dir.pwd}: " if show_all registry.departments.sort!.each do |department| print_cops_of_department(registry, department, show_all) end end
Source
# File lib/rubocop/cli/command/show_cops.rb, line 68 def print_cop_details(cops) cops.each do |cop| puts '# Supports --autocorrect' if cop.support_autocorrect? puts "#{cop.cop_name}:" puts config_lines(cop) puts end end
Source
# File lib/rubocop/cli/command/show_cops.rb, line 56 def print_cops_of_department(registry, department, show_all) selected_cops = if show_all cops_of_department(registry, department) else selected_cops_of_department(registry, department) end puts "# Department '#{department}' (#{selected_cops.length}):" if show_all print_cop_details(selected_cops) end
Source
# File lib/rubocop/cli/command/show_cops.rb, line 77 def selected_cops_of_department(cops, department) cops_of_department(cops, department).select do |cop| @cop_matchers.any? do |matcher| matcher.match?(cop.cop_name) end end end