diff --git a/Archive/Release.zip b/Archive/Release.zip index 052a78f..78a45f8 100644 Binary files a/Archive/Release.zip and b/Archive/Release.zip differ diff --git a/test/test.js b/test/test.js index 4e1e490..c64cad6 100644 --- a/test/test.js +++ b/test/test.js @@ -21,8 +21,7 @@ var translit = process.env.NPM_COV ? 'Jadat povek`e od ovie meki franczuskiot rolni, pa pijat chaj!'], ['Русский ', // 'мірь', 'mi`r`' 'Съешь ещё этих мягких французских булок, да выпей же чаю!', - 'S``esh` eshhyo e`tix myagkix franczuzskix bulok, da vy`pej zhe chayu!' - ], + 'S``esh` eshhyo e`tix myagkix franczuzskix bulok, da vy`pej zhe chayu!'], ['Українська', 'З’їж ще цих м’яких французьких булок, та випий же чаю!', 'Z\'yizh shhe czy`x m\'yaky`x franczuz`ky`x bulok, ta vy`py`j zhe chayu!']]; @@ -33,7 +32,7 @@ describe('Проверка translit', c = phrase[b][1]; e = translit(c, b); d = phrase[b][2]; f = translit(d, -1 * b); it(phrase[b][0] + ' ==> ' + translit(phrase[b][0], b), - function() {assert.deepEqual((c === f && e === d), true);}); + function() {assert.ok((c === f && e === d));}); } } ); diff --git a/translit.js b/translit.js index 66d031f..a242f2b 100644 --- a/translit.js +++ b/translit.js @@ -61,17 +61,19 @@ function translit(str, typ) { * @return {Array} Массив функций пред и пост обработки. **/ function prep (a) { - var write = !a ? function(chr, row) {trantab[row] = chr;regarr.push(row);} : - function(row, chr) {trantab[row] = chr;regarr.push(row);}; - return function(col, row) { // создаем таблицу и RegExp - var chr = col[abs] || col[0]; // Символ - if (chr) write(chr, row); // Если символ есть - } + var write = [ + function(chr, row) {trantab[row] = chr;regarr.push(row);}, + function(row, chr) {trantab[row] = chr;regarr.push(row);} + ][a]; + return function(col, row) { // создаем таблицу и RegExp + var chr = col[abs] || col[0]; // Символ + if (chr) write(chr, row); // Если символ есть + } } var abs = Math.abs(typ); // Абсолютное значение транслитерации if (typ === abs) { // Прямая транслитерация в латиницу str = str.replace(/(i(?=.[^аеиоуъ\s]+))/ig, '$1`'); // "i`" ГОСТ ст. рус. и болг. - return [prep(), // Возвращаем массив функций + return [prep(0), // Возвращаем массив функций function(str) { // str - транслируемая строка. return str.replace(/i``/ig, 'i`'). // "i`" в ГОСТ ст. рус. и болг. replace(/((c)z)(?=[ieyj])/ig, '$1'); // "cz" в символ "c"