Class: PreCommit::PhpCheck
- Inherits:
-
Object
- Object
- PreCommit::PhpCheck
- Defined in:
- lib/pre-commit/checks/php_check.rb
Class Method Summary collapse
Class Method Details
.call(staged_files) ⇒ Object
5 6 7 8 9 10 11 12 13 |
# File 'lib/pre-commit/checks/php_check.rb', line 5 def self.call(staged_files) staged_files = staged_files.grep /\.(php|engine|theme|install|inc|module|test)$/ return if staged_files.empty? errors = staged_files.map { |file| run_check(file) }.compact return if errors.empty? errors.join("\n") end |
.run_check(file) ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/pre-commit/checks/php_check.rb', line 15 def self.run_check(file) # We force PHP to display errors otherwise they will likely end up in the # error_log and not in stdout. result = `php -d display_errors=1 -l #{file}` # Filter out the obvious note from PHP. result = result.split($/).find_all {|line| line !~ /Errors/}.join($/) # If PHP exited non-zero then there was a parse error. result.strip unless $? == 0 end |