class Rubydex::Linter::Runner
Attributes
rules
[R]
Array[singleton(Rule)]
Public Class Methods
(Graph, rules: Array[singleton(Rule)], config: LinterConfig) → void
Source
# File lib/rubydex/linter/runner.rb, line 15 def initialize(graph, rules:, config:) @graph = graph @config = config @rules = rules.select { |rule| config.rule_enabled?(rule) }.sort_by { |rule| rule.name.to_s } @dependency_paths = Gem.path #: Array[String] end
Public Instance Methods
# File lib/rubydex/linter/runner.rb, line 23 def run rule_diagnostics = @rules.flat_map do |rule_class| rule = rule_class.new(@graph, config: @config) rule.lint filter_diagnostics(rule.diagnostics, @config.excludes_for(rule_class)) end diagnostics = (@graph.diagnostics + rule_diagnostics).select do |diagnostic| diagnostic_in_workspace?(diagnostic) end.sort_by do |diagnostic| location = diagnostic.location [ location.uri, location.start_line, location.start_column, location.end_line, location.end_column, diagnostic.rule, diagnostic.message, ] end Result.new(diagnostics) end