Tip: Click lines to highlight, hold ctrl/cmd to multi-select
jQuery.requires (18-Apr @ 10:50)
Useful function to include within plugins to ensure the right version of jQuery is being used.
Order based on: pre, a, b, b2, rc1...etc.
Syntax Highlighted Code
- jQuery.extend({
- compareVersions : function (have, require) {
- if (typeof require == 'undefined') {
- require = have;
- have = jQuery.fn.jquery;
- }
- function parts(val) {
- // Expecting following format 1.2.3rc1, 1.2.4a, etc.
- return val.replace(/[a-z]+/i, function(m) {
- return '.' + (m == 'pre' ? '0pre' : m);
- }).split('.');
- }
- if (require == have) return 0;
- var latest = parts(have),
- required = parts(require),
- i = 0;
- while (latest[i] && required[i]) {
- if (latest[i] < required[i]) {
- return -1;
- } else if (latest[i] > required[i]) {
- return 1;
- }
- i++;
- }
- return (latest[i]
- ? (/^d/.test(latest[i]) ? 1 : -1)
- : (/^d/.test(required[i]) ? -1 : 1));
- },
- hasVersion : function() {
- var ok = this.compareVersions.apply(this, arguments);
- return (ok === 0 || ok === 1);
- }
- });
Plain Code
jQuery.extend({
compareVersions : function (have, require) {
if (typeof require == 'undefined') {
require = have;
have = jQuery.fn.jquery;
}
function parts(val) {
// Expecting following format 1.2.3rc1, 1.2.4a, etc.
return val.replace(/[a-z]+/i, function(m) {
return '.' + (m == 'pre' ? '0pre' : m);
}).split('.');
}
if (require == have) return 0;
var latest = parts(have),
required = parts(require),
i = 0;
while (latest[i] && required[i]) {
if (latest[i] < required[i]) {
return -1;
} else if (latest[i] > required[i]) {
return 1;
}
i++;
}
return (latest[i]
? (/^d/.test(latest[i]) ? 1 : -1)
: (/^d/.test(required[i]) ? -1 : 1));
},
hasVersion : function() {
var ok = this.compareVersions.apply(this, arguments);
return (ok === 0 || ok === 1);
}
});