Skip to content

Commit

Permalink
Switches ajax to async.
Browse files Browse the repository at this point in the history
This required upgrading QUnit to 2.x, adding deferred/promise support, and rewriting every test.

[Fixes #81]
  • Loading branch information
coderifous committed Oct 13, 2016
1 parent 0e493bd commit d55b25f
Show file tree
Hide file tree
Showing 13 changed files with 4,453 additions and 2,011 deletions.
1 change: 0 additions & 1 deletion Gruntfile.coffee
Expand Up @@ -24,7 +24,6 @@ module.exports = (grunt) ->
files:
"dist/<%= pkg.name %>.js": "src/*.coffee"
"test/localize_test.js": "test/localize_test.coffee"
"test/qunit_setup.js": "test/qunit_setup.coffee"

uglify:
options:
Expand Down
12 changes: 9 additions & 3 deletions dist/jquery.localize.js
Expand Up @@ -18,13 +18,14 @@ http://keith-wood.name/localisation.html
};
$.defaultLanguage = normaliseLang(navigator.languages && navigator.languages.length > 0 ? navigator.languages[0] : navigator.language || navigator.userLanguage);
$.localize = function(pkg, options) {
var defaultCallback, fileExtension, intermediateLangData, jsonCall, lang, loadLanguage, localizeElement, localizeForSpecialKeys, localizeImageElement, localizeInputElement, localizeOptgroupElement, notifyDelegateLanguageLoaded, regexify, setAttrFromValueForKey, setTextFromValueForKey, valueForKey, wrappedSet;
var defaultCallback, deferred, fileExtension, intermediateLangData, jsonCall, lang, loadLanguage, localizeElement, localizeForSpecialKeys, localizeImageElement, localizeInputElement, localizeOptgroupElement, notifyDelegateLanguageLoaded, regexify, setAttrFromValueForKey, setTextFromValueForKey, valueForKey, wrappedSet;
if (options == null) {
options = {};
}
wrappedSet = this;
intermediateLangData = {};
fileExtension = options.fileExtension || "json";
deferred = $.Deferred();
loadLanguage = function(pkg, lang, level) {
var file;
if (level == null) {
Expand All @@ -46,6 +47,8 @@ http://keith-wood.name/localisation.html
case 3:
file = "" + pkg + "-" + (lang.split('-').slice(0, 2).join('-')) + "." + fileExtension;
return jsonCall(file, pkg, lang, level);
default:
return deferred.resolve();
}
};
jsonCall = function(file, pkg, lang, level) {
Expand All @@ -68,7 +71,7 @@ http://keith-wood.name/localisation.html
ajaxOptions = {
url: file,
dataType: "json",
async: false,
async: true,
timeout: options.timeout != null ? options.timeout : 500,
success: successFunc,
error: errorFunc
Expand Down Expand Up @@ -178,9 +181,12 @@ http://keith-wood.name/localisation.html
}
};
lang = normaliseLang(options.language ? options.language : $.defaultLanguage);
if (!(options.skipLanguage && lang.match(regexify(options.skipLanguage)))) {
if (options.skipLanguage && lang.match(regexify(options.skipLanguage))) {
deferred.resolve();
} else {
loadLanguage(pkg, lang, 1);
}
wrappedSet.localizePromise = deferred;
return wrappedSet;
};
$.fn.localize = $.localize;
Expand Down
4 changes: 2 additions & 2 deletions dist/jquery.localize.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit d55b25f

Please sign in to comment.