jenkins-bot has submitted this change and it was merged.

Change subject: Export mw.Message's string formatter as mw.format
......................................................................


Export mw.Message's string formatter as mw.format

For very simple string formatting, make mw.Message's `$N` substring
interpolation functionality available publicly as mw.format.

Change-Id: I87f62ac478aab80994caf79d3c89e1215cf088d4
---
M resources/src/mediawiki/mediawiki.js
1 file changed, 22 insertions(+), 5 deletions(-)

Approvals:
  Bartosz Dziewoński: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/resources/src/mediawiki/mediawiki.js 
b/resources/src/mediawiki/mediawiki.js
index 6bf93f4..3d5c19c 100644
--- a/resources/src/mediawiki/mediawiki.js
+++ b/resources/src/mediawiki/mediawiki.js
@@ -43,6 +43,16 @@
                }
        }
 
+       // String format helper. Replaces $1, $2 .. $N placeholders with 
positional
+       // args. Used by Message.prototype.parser() and exported as mw.format().
+       function format( formatString ) {
+               var parameters = slice.call( arguments, 1 );
+               return formatString.replace( /\$(\d+)/g, function ( str, match 
) {
+                       var index = parseInt( match, 10 ) - 1;
+                       return parameters[index] !== undefined ? 
parameters[index] : '$' + match;
+               } );
+       }
+
        /* Object constructors */
 
        /**
@@ -297,11 +307,7 @@
                 * This function will not be called for nonexistent messages.
                 */
                parser: function () {
-                       var parameters = this.parameters;
-                       return this.map.get( this.key ).replace( /\$(\d+)/g, 
function ( str, match ) {
-                               var index = parseInt( match, 10 ) - 1;
-                               return parameters[index] !== undefined ? 
parameters[index] : '$' + match;
-                       } );
+                       return format.apply( null, [ this.map.get( this.key ) 
].concat( this.parameters ) );
                },
 
                /**
@@ -436,6 +442,17 @@
                }() ),
 
                /**
+                * Format a string. Replace $1, $2 ... $N with positional 
arguments.
+                *
+                * @method
+                * @since 1.25
+                * @param {string} fmt Format string
+                * @param {Mixed...} parameters Substitutions for $N 
placeholders.
+                * @return {string} Formatted string
+                */
+               format: format,
+
+               /**
                 * Track an analytic event.
                 *
                 * This method provides a generic means for MediaWiki 
JavaScript code to capture state

-- 
To view, visit https://gerrit.wikimedia.org/r/183063
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I87f62ac478aab80994caf79d3c89e1215cf088d4
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Ori.livneh <[email protected]>
Gerrit-Reviewer: Bartosz Dziewoński <[email protected]>
Gerrit-Reviewer: Daniel Friesen <[email protected]>
Gerrit-Reviewer: Fomafix
Gerrit-Reviewer: Jack Phoenix <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: MZMcBride <[email protected]>
Gerrit-Reviewer: Ori.livneh <[email protected]>
Gerrit-Reviewer: Ricordisamoa <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to