mw.language: Document ability to set multiple values at once.
authorTimo Tijhof <ttijhof@wikimedia.org>
Sat, 9 Jun 2012 15:47:41 +0000 (17:47 +0200)
committerTimo Tijhof <ttijhof@wikimedia.org>
Sat, 9 Jun 2012 15:47:41 +0000 (17:47 +0200)
* ResourceLoaderLanguageDataModule uses this but it looked
  a bit like an error when looking at the function signature
  of setData.

  This is the power of mw.Map.

* Fixed indention as well.
* Added missing semi colon.

Change-Id: I1e9e8254862ae08e9a11e55dd42d7e851a56a3cc

includes/resourceloader/ResourceLoaderLanguageDataModule.php
resources/mediawiki.language/mediawiki.language.init.js

index 4904735..b823f1d 100644 (file)
@@ -46,7 +46,9 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
 
                return Xml::encodeJsCall( 'mw.language.setData', array(
                        $wgContLang->getCode(),
-                       array( 'grammarForms' => $this->getSiteLangGrammarForms() )
+                       array(
+                               'grammarForms' => $this->getSiteLangGrammarForms()
+                       )
                ) );
        }
 
index 20ed711..b49823c 100644 (file)
@@ -4,53 +4,58 @@
  */
 ( function( $, mw ) {
 
-var language = {
-       /**
-        * @var data {Object} Language related data (keyed by language,
-        * contains instances of mw.Map).
-        * @example Set data
-        * <code>
-        *     // Override, extend or create the language data object of 'nl'
-        *     mw.language.setData( 'nl', 'myKey', 'My value' );
-        * </code>
-        * @example Get GrammarForms data for language 'nl':
-        * <code>
-        *     var grammarForms = mw.language.getData( 'nl', 'grammarForms' );
-        * </code>
-        */
-       data: {},
+       var language = {
+               /**
+                * @var data {Object} Language related data (keyed by language,
+                * contains instances of mw.Map).
+                * @example Set data
+                * <code>
+                *     // Override, extend or create the language data object of 'nl'
+                *     mw.language.setData( 'nl', 'myKey', 'My value' );
+                *
+                *     // Set multiple values at once
+                *     mw.language.setData( 'nl', { 'foo': 'X', 'bar': 'Y' } );
+                * </code>
+                * @example Get GrammarForms data for language 'nl':
+                * <code>
+                *     var grammarForms = mw.language.getData( 'nl', 'grammarForms' );
+                * </code>
+                */
+               data: {},
 
-       /**
-        * Convenience method for retreiving language data by language code and data key,
-        * covering for the potential inexistance of a data object for this langiage.
-        * @param langCode {String}
-        * @param dataKey {String}
-        * @return {mixed} Value stored in the mw.Map (or undefined if there is no map for
-          the specified langCode).
-        */
-       getData: function ( langCode, dataKey ) {
-               var langData = language.data;
-               if ( langData[langCode] instanceof mw.Map ) {
-                       return langData[langCode].get( dataKey );
-               }
-               return undefined;
-       },
+               /**
+                * Convenience method for retreiving language data by language code and data key,
+                * covering for the potential inexistance of a data object for this langiage.
+                * @param langCode {String}
+                * @param dataKey {String}
+                * @return {mixed} Value stored in the mw.Map (or undefined if there is no map for
+                  the specified langCode).
+                */
+               getData: function ( langCode, dataKey ) {
+                       var langData = language.data;
+                       if ( langData[langCode] instanceof mw.Map ) {
+                               return langData[langCode].get( dataKey );
+                       }
+                       return undefined;
+               },
 
-       /**
-        * Convenience method for setting language data by language code and data key.
-        * Creates a data object if there isn't one for the specified language already.
-        * @param langCode {String}
-        * @param dataKey {String}
-        * @param value {mixed}
-        */
-       setData: function ( langCode, dataKey, value ) {
-               var langData = language.data;
-               if ( !( langData[langCode] instanceof mw.Map ) ) {
-                       langData[langCode] = new mw.Map();
+               /**
+                * Convenience method for setting language data by language code and data key.
+                * Creates the data mw.Map if there isn't one for the specified language already.
+                *
+                * @param langCode {String}
+                * @param dataKey {String|Object} Key or object of key/values.
+                * @param value {mixed} Value for dataKey, ignored if dataKey is an object.
+                */
+               setData: function ( langCode, dataKey, value ) {
+                       var langData = language.data;
+                       if ( !( langData[langCode] instanceof mw.Map ) ) {
+                               langData[langCode] = new mw.Map();
+                       }
+                       langData[langCode].set( dataKey, value );
                }
-               langData[langCode].set( dataKey, value );
-       }
-}
-mw.language = language;
+       };
+
+       mw.language = language;
 
 } )( jQuery, mediaWiki );