예제 #1
0
 public function showProgress($file, Result $result, Application $application)
 {
     $message = str_replace($this->_project . '/', null, $file);
     $self = $this;
     $format = function ($result) use($self) {
         return sprintf($self->blame ? '%1$4s| %2$3s| %3$20s| %4$s' : '%1$4s| %2$3s| %4$s', $result->getLine() ?: '??', $result->getColumn() ?: '??', $self->invokeMethod('_blame', array($result)) ?: '??', $result->getMessage() ?: '??');
     };
     if ($result->wasSkipped($file)) {
         $this->out("[{:cyan}skip{:end}     ] {$message}");
     } elseif ($result->hasLintError($file)) {
         $this->out("[{:purple}exception{:end}] {$message}");
         $this->out($format($result->getLintError($file)));
     } elseif ($result->hasRuleError($file)) {
         $this->out("[{:purple}exception{:end}] {$message}");
         foreach ($result->getRuleErrors($file) as $error) {
             $this->out($format($error));
         }
     } elseif ($result->hasViolations($file)) {
         $this->out("[{:red}fail{:end}     ] {$message}");
         foreach ($result->getViolations($file) as $violation) {
             $this->out($format($violation));
         }
     } else {
         $this->out("[{:green}pass{:end}     ] {$message}");
     }
 }