Class: Maximus::Lint
Overview
Parent class for all lints (inherited by children)
Instance Attribute Summary collapse
Instance Method Summary collapse
-
#initialize(opts = {}) ⇒ void
constructor
Perform a lint of relevant code.
-
#refine(data) ⇒ Hash
Convert raw data into warnings, errors, conventions or refactors.
Methods included from Helper
#check_default_config_path, #edit_yaml, #file_count, #file_list, #is_rails?, #lines_added_to_range, #node_module_exists, #path_exists?, #prompt, #reporter_path, #root_dir, #truthy?
Constructor Details
#initialize(opts = {}) ⇒ void
Perform a lint of relevant code
All defined lints require a “result” method Inherits settings from Config#initialize
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/maximus/lint.rb', line 36 def initialize(opts = {}) # Only run the config once @config = opts[:config] || Maximus::Config.new(opts) @settings = @config.settings @git_files = opts[:git_files] @path = opts[:file_paths] || @settings[:file_paths] @output = {} end |
Instance Attribute Details
#output ⇒ Object
9 10 11 |
# File 'lib/maximus/lint.rb', line 9 def output @output end |
Instance Method Details
#refine(data) ⇒ Hash
Convert raw data into warnings, errors, conventions or refactors. Use this wisely.
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/maximus/lint.rb', line 50 def refine(data) # Prevent abortive empty JSON.parse error data = '{}' if data.blank? return puts "Error from #{@task}: #{data}" if data.is_a?(String) && data.include?('No such') data = data.is_a?(String) ? JSON.parse(data) : data @output[:relevant_lints] = relevant_lints( data, @git_files ) unless @git_files.blank? unless @settings[:commit].blank? data = @output[:relevant_lints] end evaluate_severities(data) lint_count = (@output[:lint_errors].length + @output[:lint_warnings].length + @output[:lint_conventions].length + @output[:lint_refactors].length) puts lint_summarize if @config.is_dev? puts lint_dev_format(data) unless data.blank? lint_ceiling lint_count else # Because this should be returned in the format it was received @output[:raw_data] = data.to_json end @output end |