http://www.mediawiki.org/wiki/Special:Code/MediaWiki/82792

Revision: 82792
Author:   reedy
Date:     2011-02-25 13:08:05 +0000 (Fri, 25 Feb 2011)
Log Message:
-----------
Per r82788, factor out bug matching regex

Modified Paths:
--------------
    trunk/extensions/CodeReview/backend/CodeCommentLinker.php
    trunk/extensions/CodeReview/backend/CodeRevision.php
    trunk/extensions/CodeReview/ui/CodeReleaseNotes.php

Modified: trunk/extensions/CodeReview/backend/CodeCommentLinker.php
===================================================================
--- trunk/extensions/CodeReview/backend/CodeCommentLinker.php   2011-02-25 
11:48:14 UTC (rev 82791)
+++ trunk/extensions/CodeReview/backend/CodeCommentLinker.php   2011-02-25 
13:08:05 UTC (rev 82792)
@@ -25,7 +25,7 @@
                        array( $this, 'generalLink' ), $text );
                $text = preg_replace_callback( '/\br(\d+)\b/',
                        array( $this, 'messageRevLink' ), $text );
-               $text = preg_replace_callback( '/\bbug ?#?(\d+)\b/i',
+               $text = preg_replace_callback( CodeRevision::BugReference,
                        array( $this, 'messageBugLink' ), $text );
                return $text;
        }

Modified: trunk/extensions/CodeReview/backend/CodeRevision.php
===================================================================
--- trunk/extensions/CodeReview/backend/CodeRevision.php        2011-02-25 
11:48:14 UTC (rev 82791)
+++ trunk/extensions/CodeReview/backend/CodeRevision.php        2011-02-25 
13:08:05 UTC (rev 82792)
@@ -3,6 +3,14 @@
 class CodeRevision {
 
        /**
+        * Regex to match bug mentions in comments, commit summaries, etc
+        *
+        * Examples:
+        * bug 1234, bug1234, bug #1234, bug#1234
+        */
+       const BugReference = '/\bbug ?#?(\d+)\b/';
+
+       /**
         * @var CodeRepository
         */
        protected $repo;
@@ -476,7 +484,7 @@
                // Update bug references table...
                $affectedBugs = array();
                $m = array();
-               if ( preg_match_all( '/\bbug ?#?(\d+)\b/', $this->message, $m ) 
) {
+               if ( preg_match_all( self::BugReference, $this->message, $m ) ) 
{
                        $data = array();
                        foreach ( $m[1] as $bug ) {
                                $data[] = array(

Modified: trunk/extensions/CodeReview/ui/CodeReleaseNotes.php
===================================================================
--- trunk/extensions/CodeReview/ui/CodeReleaseNotes.php 2011-02-25 11:48:14 UTC 
(rev 82791)
+++ trunk/extensions/CodeReview/ui/CodeReleaseNotes.php 2011-02-25 13:08:05 UTC 
(rev 82792)
@@ -135,12 +135,22 @@
                return $summary;
        }
 
-       // Quick relevance tests (these *should* be over-inclusive a little if 
anything)
+       /**
+        * Quick relevance tests (these *should* be over-inclusive a little if 
anything)
+        *
+        * @param  $summary
+        * @param bool $whole
+        * @return bool|int
+        */
        private function isRelevant( $summary, $whole = true ) {
-               # Fixed a bug? Mentioned a config var?
-               if ( preg_match( '/\b(bug ?#?(\d+)|\$[we]g[0-9a-z]{3,50})\b/i', 
$summary ) ) {
+               # Mentioned a bug?
+               if ( preg_match( CodeRevision::BugReference, $summary) ) {
                        return true;
                }
+               #Mentioned a config var?
+               if ( preg_match( '/\b\$[we]g[0-9a-z]{3,50}\b/i', $summary ) ) {
+                       return true;
+               }
                # Sanity check: summary cannot be *too* short to be useful
                $words = str_word_count( $summary );
                if ( mb_strlen( $summary ) < 40 || $words <= 5 ) {


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to