21 private $validMsgParts = array(
61 private $originalMsg =
'';
75 private $lengthyLines;
82 private static $validTypes = array(
105 private $validComponents = array(
121 private $ignoreRegex =
'/^Merge |^Revert /i';
140 private $formatRegex =
"/^(\w*)\(([\w]+)\)\: ([^\n]*)(\n\n?(.*))?$/is";
146 private $maxLineLength = 160;
167 $this->originalMsg = $msg;
169 $msg = str_replace(array(
"\r",
"\n"),
"\n", $msg);
170 $this->msg = $this->removeComments($msg);
189 return $this->originalMsg;
198 return preg_match($this->ignoreRegex, $this->msg) === 1;
206 private function processMsg() {
209 preg_match($this->formatRegex, $this->msg, $matches);
210 foreach ($this->validMsgParts as $i => $part) {
211 $this->$part = isset($matches[$i]) ? $matches[$i] :
'';
214 $this->lengthyLines = $this->findLengthyLines($this->msg, $this->maxLineLength);
223 return $this->isValidFormat() &&
224 $this->isValidLineLength() &&
225 $this->isValidType();
234 return preg_match($this->formatRegex, $this->msg) === 1;
245 return count($this->lengthyLines) === 0;
254 return $this->lengthyLines;
263 return in_array($this->
type, self::$validTypes);
272 return self::$validTypes;
281 return $this->maxLineLength;
293 $this->maxLineLength = (int)$len;
305 if ($part && in_array($part, $this->validMsgParts)) {
321 foreach (explode(
"\n", rtrim($msg)) as $line) {
322 if (substr($line, 0, 1) !==
'#') {
327 return implode(
"\n", $msg_arr);
339 $lines = explode(
"\n", $msg);
340 $lengthy_lines = array();
342 foreach ($lines as $i => $line) {
343 if (strlen($line) > $max_len) {
344 $lengthy_lines[] = ++$i;
348 return $lengthy_lines;
354 return $this->getMsg();
static removeComments($msg)
Removes all lines that start with #.
getLengthyLines()
Get the line number of lines that are too long.
static getValidTypes()
Return all valid types.
isValid()
Are all parts of the message valid.
isValidType()
Is the type valid.
getOriginalMsg()
Return the original message.
getMsg()
Return the processed message.
isValidFormat()
Whether the message format conforms to our standards.
static findLengthyLines($msg, $max_len)
Returns an array of line numbers > $max_len.
isValidLineLength()
Are any of the lines too long?
setMsg($msg)
Sets the active message.
getPart($part)
Get part of the message.
shouldIgnore()
Should this msg be ignored for formatting?
__construct($msg=null)
Checks if a commit message is in the correct format.
setMaxLineLength($len)
Sets the max line length allowed.
getMaxLineLength()
Return the max line length.