Class: Overcommit::GitHook::ScssLint
- Inherits:
-
HookSpecificCheck
- Object
- HookSpecificCheck
- Overcommit::GitHook::ScssLint
- Includes:
- HookRegistry
- Defined in:
- lib/overcommit/plugins/pre_commit/scss_lint.rb
Instance Method Summary collapse
Methods included from HookRegistry
Methods inherited from HookSpecificCheck
file_type, friendly_name, #initialize, #name, required!, #skip?, skippable?, #staged, stealth!, #stealth?
Constructor Details
This class inherits a constructor from Overcommit::GitHook::HookSpecificCheck
Instance Method Details
#run_check ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/overcommit/plugins/pre_commit/scss_lint.rb', line 6 def run_check begin require 'scss_lint' rescue LoadError return :warn, 'scss-lint not installed -- run `gem install scss-lint`' end paths_to_staged_files = Hash[staged.map { |s| [s.path, s] }] success, output = run_scss_lint return :good if success # Keep lines from the output for files that we actually modified error_lines, warning_lines = output.lines.partition do |output_line| if match = output_line.match(/^([^:]+):(\d+)/) file = match[1] line = match[2] end unless paths_to_staged_files[file] return :warn, "Unexpected output from scss-lint:\n#{output}" end paths_to_staged_files[file].modified_lines.include?(line.to_i) end return :bad, error_lines.join unless error_lines.empty? return :warn, "Modified files have lints (on lines you didn't modify)\n" << warning_lines.join end |