From 16d6409be1f19b98aea1278d5b046625c966d689 Mon Sep 17 00:00:00 2001 From: Amire80 Date: Tue, 22 May 2018 15:42:15 +0300 Subject: [PATCH] Remove Object support from getLanguagesByScriptGroup --- index.js | 22 +++++++++------------- test/index.js | 22 ++++------------------ 2 files changed, 13 insertions(+), 31 deletions(-) diff --git a/index.js b/index.js index 1b8f453..d58f9de 100644 --- a/index.js +++ b/index.js @@ -141,19 +141,15 @@ function getScriptGroupOfLanguage( language ) { /** * Get the given list of languages grouped by script. - * @param {string[]|Object} languages Array of language codes or associative array of autonyms indexed by language code - * @return {Object} Associative array of languages indexed by script groups + * @param {string[]} languages Array of language codes to group + * @return {string[]} Array of language codes */ function getLanguagesByScriptGroup( languages ) { var languagesByScriptGroup = {}, - languagesList, language, languageIndex, resolvedRedirect, langScriptGroup; + languages, language, languageIndex, resolvedRedirect, langScriptGroup; - languagesList = Array.isArray( languages ) - ? languages - : Object.keys( languages ); - - for ( languageIndex = 0; languageIndex < languagesList.length; languageIndex++ ) { - language = languagesList[ languageIndex ]; + for ( languageIndex = 0; languageIndex < languages.length; languageIndex++ ) { + language = languages[ languageIndex ]; resolvedRedirect = isRedirect( language ) || language; langScriptGroup = getScriptGroupOfLanguage( resolvedRedirect ); if ( !languagesByScriptGroup[ langScriptGroup ] ) { @@ -202,11 +198,11 @@ function getLanguagesByScriptGroupInRegion( region ) { } /** - * Get the given list of languages grouped by script. - * @param {string[], Object} languages Array of language codes or associative array of autonyms indexed by language code + * Return the list of languages sorted by script groups. + * @param {string[]} languages Array of language codes to sort * @return {string[]} Array of language codes */ -function sortByScriptGroupAndAutonym( languages ) { +function sortByScriptGroup( languages ) { var groupedLanguages, scriptGroups, i, sortedByAutonym = [], allLanguages = []; @@ -296,6 +292,6 @@ module.exports = { isKnown, isRedirect, isRtl, - sortByScriptGroupAndAutonym, + sortByScriptGroup, sortByAutonym }; diff --git a/test/index.js b/test/index.js index f26da94..51368e3 100644 --- a/test/index.js +++ b/test/index.js @@ -114,25 +114,11 @@ describe( 'languagedata', function () { ], 'Languages are correctly sorted by autonym' ); } ); it( 'regions and groups', function () { - var languagesToGroup, groupedLanguages, languagesAM; + var languagesAM; // This test assumes that we don't want any scripts to be in the 'Other' // group. Actually, this may become wrong some day. assert.deepEqual( orphanScripts(), [], 'All scripts belong to script groups.' ); - languagesToGroup = { - en: 'English', - 'fiu-vro': 'Võro', // Alias before target - ru: 'русский', - sr: 'српски', // Alias before target - 'sr-cyrl': 'српски', // Target before alias - 'sr-latn': 'srpski', // Target before alias - 'sr-el': 'srpski', // Alias after target - vro: 'Võro' // Target after alias - }; - groupedLanguages = { - Latin: [ 'en', 'fiu-vro', 'sr-latn', 'sr-el', 'vro' ], - Cyrillic: [ 'ru', 'sr', 'sr-cyrl' ] - }; - assert.deepEqual( languageData.getLanguagesByScriptGroup( languagesToGroup ), groupedLanguages, 'A custom list of languages is grouped correctly using getLanguagesByScriptGroup.' ); + assert.deepEqual( languageData.getRegions( 'lzz' ), [ 'EU', 'ME' ], 'Correct regions of the Laz language were selected' ); @@ -141,8 +127,8 @@ describe( 'languagedata', function () { languagesAM = [ 'atj', 'chr', 'chy', 'cr', 'en', 'es', 'fr', 'gn', 'haw', 'ike-cans', 'ik', 'kl', 'nl', 'pt', 'qu', 'srn', 'yi' ]; assert.deepEqual( - languageData.sortByScriptGroupAndAutonym( languagesAM ), - [ 'atj', 'gn', 'en', 'es', 'fr', 'haw', 'ik', 'kl', 'nl', 'pt', 'qu', 'srn', 'chy', 'yi', 'chr', 'ike-cans', 'cr' ], + languageData.sortByScriptGroup( languagesAM ), + [ 'atj', 'gn', 'en', 'es', 'fr', 'haw', 'ik', 'kl', 'nl', 'pt', 'qu', 'srn', 'chy', 'yi', 'ike-cans', 'cr', 'chr' ], 'languages in region AM are ordered correctly by script group' ); } );