Sha256: 5dc395f79ed5d1e551b9d4a3158f451abfef5a3b90aa97cf3bd1004c12bda7d2
Contents?: true
Size: 1.13 KB
Versions: 1
Compression:
Stored size: 1.13 KB
Contents
require 'pre-commit/utils' module PreCommit class RubySymbolHashrockets attr_accessor :staged_files, :error_message HASHROCKET_PATTERN = ':(?:\$|@|@@|[_A-Za-z])?\w*[=!?]?\s*=>\s*' def self.call check = new check.staged_files = Utils.staged_files('*') result = check.run if !result $stderr.puts check.error_message $stderr.puts $stderr.puts 'pre-commit: You can bypass this check using `git commit -n`' $stderr.puts end result end def run # There is nothing to check return true if staged_files.empty? if detected_bad_code? @error_message = "pre-commit: detected :symbol => value hashrocket:\n" @error_message += violations[:lines] @passed = false else @passed = true end @passed end def detected_bad_code? violations[:success] end def violations @violations ||= begin lines = `#{Utils.grep} '#{HASHROCKET_PATTERN}' #{staged_files}` success = $?.exitstatus == 0 { :lines => lines, :success => success} end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pre-commit-0.7.0 | lib/pre-commit/checks/ruby_symbol_hashrockets.rb |