Class: DebuggerCheck
- Inherits:
-
Object
- Object
- DebuggerCheck
- Defined in:
- lib/pre-commit/checks/debugger_check.rb
Instance Attribute Summary collapse
-
#error_message ⇒ Object
Returns the value of attribute error_message.
-
#grep_command ⇒ Object
Returns the value of attribute grep_command.
-
#staged_files ⇒ Object
Returns the value of attribute staged_files.
Class Method Summary collapse
Instance Method Summary collapse
- #detected_bad_code? ⇒ Boolean
- #instances_of_debugger_violations ⇒ Object
- #print_dash_n_reminder ⇒ Object
- #run ⇒ Object
Instance Attribute Details
#error_message ⇒ Object
Returns the value of attribute error_message.
2 3 4 |
# File 'lib/pre-commit/checks/debugger_check.rb', line 2 def @error_message end |
#grep_command ⇒ Object
Returns the value of attribute grep_command.
2 3 4 |
# File 'lib/pre-commit/checks/debugger_check.rb', line 2 def grep_command @grep_command end |
#staged_files ⇒ Object
Returns the value of attribute staged_files.
2 3 4 |
# File 'lib/pre-commit/checks/debugger_check.rb', line 2 def staged_files @staged_files end |
Class Method Details
.call(quiet = false) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/pre-commit/checks/debugger_check.rb', line 4 def self.call(quiet=false) dirs = ['app/', 'lib/', 'script/', 'vendor/', 'test/'].reject {|d| !File.exists?(d)} check = new check.staged_files = Utils.staged_files(*dirs) result = check.run if !quiet && !result $stderr.puts check. $stderr.puts check.print_dash_n_reminder end result end |
Instance Method Details
#detected_bad_code? ⇒ Boolean
30 31 32 |
# File 'lib/pre-commit/checks/debugger_check.rb', line 30 def detected_bad_code? !system("git diff --cached -Sdebugger --quiet --exit-code") end |
#instances_of_debugger_violations ⇒ Object
34 35 36 37 |
# File 'lib/pre-commit/checks/debugger_check.rb', line 34 def instances_of_debugger_violations cmd = grep_command || "git grep" `#{cmd} -nH debugger #{staged_files}` end |
#print_dash_n_reminder ⇒ Object
39 40 41 42 |
# File 'lib/pre-commit/checks/debugger_check.rb', line 39 def print_dash_n_reminder $stderr.puts 'You can bypass this check using `git commit -n`' $stderr.puts end |
#run ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/pre-commit/checks/debugger_check.rb', line 18 def run return true if staged_files.empty? if detected_bad_code? @error_message = "pre-commit: debugger statement(s) found:\n" @error_message += instances_of_debugger_violations false else true end end |