mirror of
https://github.com/wahyd4/cdnjs.git
synced 2026-08-20 18:27:57 +10:00
updated cookiejar to 1.5.1 - bugfix
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
JavaScript code to store data as JSON strings in cookies.
|
||||
It uses prototype.js 1.5.1 or newer (http://www.prototypejs.org)
|
||||
|
||||
Author : Lalit Patel
|
||||
Website: http://www.lalit.org/lab/jsoncookies
|
||||
License: Apache Software License 2
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Version: 0.5.1
|
||||
Updated: Sep 21, 2013
|
||||
|
||||
Change Log:
|
||||
|
||||
* v 0.5.1
|
||||
- Bug fixes, corrected typos.
|
||||
- Added set() alias for put()
|
||||
* v 0.5
|
||||
- Changed License from CC to Apache 2
|
||||
* v 0.4
|
||||
- Removed a extra comma in options (was breaking in IE and Opera). (Thanks Jason)
|
||||
- Removed the parameter name from the initialize function
|
||||
- Changed the way expires date was being calculated. (Thanks David)
|
||||
* v 0.3
|
||||
- Removed dependency on json.js (http://www.json.org/json.js)
|
||||
- empty() function only deletes the cookies set by CookieJar
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
var CookieJar = Class.create();
|
||||
|
||||
CookieJar.prototype = {
|
||||
|
||||
/**
|
||||
* Prepend before all cookie names to differentiate them.
|
||||
*/
|
||||
prependString: "__CJ_",
|
||||
|
||||
/**
|
||||
* Initializes the cookie jar with the options.
|
||||
*/
|
||||
initialize: function(options) {
|
||||
this.options = {
|
||||
expires: 3600, // seconds (1 hr)
|
||||
path: '', // cookie path
|
||||
domain: '', // cookie domain
|
||||
secure: '' // secure ?
|
||||
};
|
||||
Object.extend(this.options, options || {});
|
||||
|
||||
if (this.options.expires != '') {
|
||||
var date = new Date();
|
||||
date = new Date(date.getTime() + (this.options.expires * 1000));
|
||||
this.options.expires = '; expires=' + date.toGMTString();
|
||||
}
|
||||
if (this.options.path != '') {
|
||||
this.options.path = '; path=' + escape(this.options.path);
|
||||
}
|
||||
if (this.options.domain != '') {
|
||||
this.options.domain = '; domain=' + escape(this.options.domain);
|
||||
}
|
||||
if (this.options.secure == 'secure') {
|
||||
this.options.secure = '; secure';
|
||||
} else {
|
||||
this.options.secure = '';
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds a name value pair.
|
||||
*/
|
||||
put: function(name, value) {
|
||||
name = this.prependString + name;
|
||||
cookie = this.options;
|
||||
var type = typeof value;
|
||||
switch(type) {
|
||||
case 'undefined':
|
||||
case 'function' :
|
||||
case 'unknown' : return false;
|
||||
case 'boolean' :
|
||||
case 'string' :
|
||||
case 'number' : value = String(value.toString());
|
||||
}
|
||||
var cookie_str = name + "=" + escape(Object.toJSON(value));
|
||||
try {
|
||||
document.cookie = cookie_str + cookie.expires + cookie.path + cookie.domain + cookie.secure;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
||||
set: function(name, value){
|
||||
this.put(name, value);
|
||||
},
|
||||
|
||||
/**
|
||||
* Removes a particular cookie (name value pair) from the Cookie Jar.
|
||||
*/
|
||||
remove: function(name) {
|
||||
name = this.prependString + name;
|
||||
cookie = this.options;
|
||||
try {
|
||||
var date = new Date();
|
||||
date.setTime(date.getTime() - (3600 * 1000));
|
||||
var expires = '; expires=' + date.toGMTString();
|
||||
document.cookie = name + "=" + expires + cookie.path + cookie.domain + cookie.secure;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* Return a particular cookie by name;
|
||||
*/
|
||||
get: function(name) {
|
||||
name = this.prependString + name;
|
||||
var cookies = document.cookie.match(name + '=(.*?)(;|$)');
|
||||
if (cookies) {
|
||||
return (unescape(cookies[1])).evalJSON();
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Empties the Cookie Jar. Deletes all the cookies.
|
||||
*/
|
||||
empty: function() {
|
||||
keys = this.getKeys();
|
||||
size = keys.size();
|
||||
for(var i=0; i<size; i++) {
|
||||
this.remove(keys[i]);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns all cookies as a single object
|
||||
*/
|
||||
getPack: function() {
|
||||
pack = {};
|
||||
keys = this.getKeys();
|
||||
|
||||
size = keys.size();
|
||||
for(i=0; i<size; i++) {
|
||||
pack[keys[i]] = this.get(keys[i]);
|
||||
}
|
||||
return pack;
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns all keys.
|
||||
*/
|
||||
getKeys: function() {
|
||||
keys = $A();
|
||||
keyRe= /[^=; ]+(?=\=)/g;
|
||||
str = document.cookie;
|
||||
CJRe = new RegExp("^" + this.prependString);
|
||||
while((match = keyRe.exec(str)) != undefined) {
|
||||
if (CJRe.test(match[0].strip())) {
|
||||
keys.push(match[0].strip().gsub(CJRe,""));
|
||||
}
|
||||
}
|
||||
return keys;
|
||||
}
|
||||
};
|
||||
@@ -1,25 +1,32 @@
|
||||
{
|
||||
"name": "cookiejar",
|
||||
"filename": "cookiejar.js",
|
||||
"version": "0.5",
|
||||
"description": "JavaScript code to store data as JSON strings in cookies. It uses Prototype.js 1.5.1 (http://prototypejs.org) or later. Apache Software licensed",
|
||||
"homepage": "http://www.lalit.org/lab/jsoncookies",
|
||||
"keywords": [
|
||||
"javascript",
|
||||
"cookies",
|
||||
"json"
|
||||
],
|
||||
"maintainers": [
|
||||
{
|
||||
"name": "Lalit Patel",
|
||||
"web": "http://www.lalit.org/"
|
||||
}
|
||||
],
|
||||
"repositories": [
|
||||
{
|
||||
"type": "http",
|
||||
"url": "http://www.lalit.org/wordpress_new/wp-content/uploads/2008/06/cookiejar.js"
|
||||
}
|
||||
]
|
||||
|
||||
"name": "cookiejar",
|
||||
"filename": "cookiejar.js",
|
||||
"version": "0.5.1",
|
||||
"description": "JavaScript code to store data as JSON strings in cookies. It uses Prototype.js 1.5.1 (http://prototypejs.org) or later. Apache Software licensed",
|
||||
"homepage": "http://www.lalit.org/lab/jsoncookies",
|
||||
"keywords": [
|
||||
"javascript",
|
||||
"cookies",
|
||||
"json"
|
||||
],
|
||||
"maintainers": [
|
||||
{
|
||||
"name": "Lalit Patel",
|
||||
"web": "http://www.lalit.org/"
|
||||
},
|
||||
{
|
||||
"name": "Walter Davis".
|
||||
"web": "http://walterdavisstudio.com"
|
||||
}
|
||||
],
|
||||
"repositories": [
|
||||
{
|
||||
"type": "http",
|
||||
"url": "http://www.lalit.org/wordpress_new/wp-content/uploads/2008/06/cookiejar.js"
|
||||
},
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/walterdavis/cookiejar"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user