Sha256: 74f08bb77303f61f450f8f72915f720048dcd9481ddea61c6885cfebf31a1329
Contents?: true
Size: 1.52 KB
Versions: 4
Compression:
Stored size: 1.52 KB
Contents
module SCSSLint class LinterError < StandardError; end class NoFilesError < StandardError; end # Finds and aggregates all lints found by running the registered linters # against a set of SCSS files. class Runner attr_reader :lints # @param config [Config] def initialize(config) @config = config @lints = [] @linters = LinterRegistry.linters.map(&:new) end # @param files [Array] def run(files) raise NoFilesError, 'No SCSS files specified' if files.empty? files.each do |file| find_lints(file) end @linters.each do |linter| @lints += linter.lints end end private # @param file [String] def find_lints(file) engine = Engine.new(file) config = @config.preferred ? @config : Config.for_file(file) config ||= @config @linters.each do |linter| next unless config.linter_enabled?(linter) next if config.excluded_file_for_linter?(file, linter) begin linter.run(engine, config.linter_options(linter)) rescue => error raise LinterError, "#{linter.class} raised unexpected error linting file #{file}: " \ "'#{error.message}'", error.backtrace end end rescue Sass::SyntaxError => ex @lints << Lint.new(nil, ex.sass_filename, Location.new(ex.sass_line), ex.to_s, :error) rescue FileEncodingError => ex @lints << Lint.new(nil, file, Location.new, ex.to_s, :error) end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
scss-lint-0.25.1 | lib/scss_lint/runner.rb |
scss-lint-0.25.0 | lib/scss_lint/runner.rb |
scss-lint-0.24.1 | lib/scss_lint/runner.rb |
scss-lint-0.24.0 | lib/scss_lint/runner.rb |