class RuboCop::Git::StyleGuide
ref. github.com/thoughtbot/hound/blob/d2f3933/app/models/style_guide.rb
Public Class Methods
new(rubocop_options, config_file, override_config_content = nil)
click to toggle source
# File lib/rubocop/git/style_guide.rb, line 4 def initialize(rubocop_options, config_file, override_config_content = nil) @rubocop_options = rubocop_options @config_file = config_file @override_config_content = override_config_content end
Public Instance Methods
violations(file)
click to toggle source
# File lib/rubocop/git/style_guide.rb, line 10 def violations(file) if ignored_file?(file) [] else parsed_source = parse_source(file) team = RuboCop::Cop::Team.new(all_cops, config, rubocop_options) team.inspect_file(parsed_source) end end
Private Instance Methods
all_cops()
click to toggle source
# File lib/rubocop/git/style_guide.rb, line 23 def all_cops; RuboCop::Cop::Registry.new RuboCop::Cop::Cop.all; end
config()
click to toggle source
# File lib/rubocop/git/style_guide.rb, line 49 def config if @config.nil? config = RuboCop::ConfigLoader.configuration_from_file(@config_file) combined_config = RuboCop::ConfigLoader.merge(config, override_config) @config = RuboCop::Config.new(combined_config, "") end @config end
excluded_file?(file)
click to toggle source
# File lib/rubocop/git/style_guide.rb, line 32 def excluded_file?(file) config.file_to_exclude?(file.filename) end
ignored_file?(file)
click to toggle source
# File lib/rubocop/git/style_guide.rb, line 28 def ignored_file?(file) !file.ruby? || file.removed? || excluded_file?(file) end
override_config()
click to toggle source
# File lib/rubocop/git/style_guide.rb, line 67 def override_config if @override_config_content config_content = YAML.load(@override_config_content) override_config = RuboCop::Config.new(config_content, "") override_config.add_missing_namespaces override_config.make_excludes_absolute override_config else {} end end
parse_source(file)
click to toggle source
# File lib/rubocop/git/style_guide.rb, line 36 def parse_source(file) rubocop_version = Gem::Version.new(RuboCop::Version::STRING) if rubocop_version < Gem::Version.new('0.36.0') RuboCop::ProcessedSource.new(file.content, file.filename) elsif rubocop_version < Gem::Version.new('0.41.0') RuboCop::ProcessedSource.new(file.content, target_ruby_version, file.filename) else RuboCop::ProcessedSource.new(file.content, config.target_ruby_version, file.filename) end end
rubocop_options()
click to toggle source
# File lib/rubocop/git/style_guide.rb, line 59 def rubocop_options if config["ShowCopNames"] { debug: true } else {} end.merge(@rubocop_options) end
target_ruby_version()
click to toggle source
TODO: DELETE ME when we drop support for 0.x releases of rubocop
This method exists in RuboCop::Config now (or config in this class) so we should make use of that.
# File lib/rubocop/git/style_guide.rb, line 83 def target_ruby_version @target ||= begin target = config['AllCops'] && config['AllCops']['TargetRubyVersion'] if !target || !RuboCop::Config::KNOWN_RUBIES.include?(target) fail ValidationError, "Unknown Ruby version #{target.inspect} found " \ 'in `TargetRubyVersion` parameter (in ' \ "#{loaded_path}).\nKnown versions: " \ "#{RuboCop::Config::KNOWN_RUBIES.join(', ')}" end target end end