Skip to content

Instantly share code, notes, and snippets.

@wthit56
Last active December 10, 2015 19:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wthit56/4483848 to your computer and use it in GitHub Desktop.
Save wthit56/4483848 to your computer and use it in GitHub Desktop.
if (!window.BakeCookies) {
window.BakeCookies = {
set: (function () {
var days;
return function BakeCookies_set(name, value, expires) {
if ((expires != null) && !(expires instanceof Date)) {
switch (typeof (expires)) {
case "number":
days = expires;
expires = new Date();
expires.setDate(expires.getDate() + days);
break;
case "string":
expires = new Date(expires);
break;
default:
expires = null;
}
}
document.cookie = (
escape(name) + "=" + escape(value) +
(
expires == null
? ""
: "; expires=" + expires.toUTCString()
)
);
};
})(),
get: (function () {
var find = /(?:^|;|\s){name}=([\W\w]*?)(?:;|\s|$)/.source, found;
return function BakeCookies_get(name) {
found = new RegExp(find.replace("{name}", escape(name))).exec(document.cookie);
if (found) {
return unescape(found[1]);
}
else { return null; }
};
})()
};
}
// tests
var future_expiry = new Date();
future_expiry.setYear(3000);
// set
BakeCookies.set('1 day expiry', 'set', 1);
BakeCookies.set('with date', 'set2', future_expiry);
BakeCookies.set('session', '3set');
BakeCookies.set('expired', 'value', new Date(0));
console.log("cookie: ", document.cookie);
// get
console.log("1 day expiry: ", BakeCookies.get("1 day expiry"));
console.log("with date: ", BakeCookies.get("with date"));
console.log("session: ", BakeCookies.get("session"));
console.log("expired: ", BakeCookies.get("expired"));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment