vendor/assets/javascripts/js.cookie.js in js_cookie_rails-1.0.1 vs vendor/assets/javascripts/js.cookie.js in js_cookie_rails-2.1.2
- old
+ new
@@ -1,22 +1,22 @@
/*!
- * JavaScript Cookie v2.0.3
+ * JavaScript Cookie v2.1.2
* https://github.com/js-cookie/js-cookie
*
* Copyright 2006, 2015 Klaus Hartl & Fagner Brack
* Released under the MIT license
*/
-(function (factory) {
+;(function (factory) {
if (typeof define === 'function' && define.amd) {
define(factory);
} else if (typeof exports === 'object') {
module.exports = factory();
} else {
- var _OldCookies = window.Cookies;
+ var OldCookies = window.Cookies;
var api = window.Cookies = factory();
api.noConflict = function () {
- window.Cookies = _OldCookies;
+ window.Cookies = OldCookies;
return api;
};
}
}(function () {
function extend () {
@@ -32,10 +32,13 @@
}
function init (converter) {
function api (key, value, attributes) {
var result;
+ if (typeof document === 'undefined') {
+ return;
+ }
// Write
if (arguments.length > 1) {
attributes = extend({
@@ -53,23 +56,27 @@
if (/^[\{\[]/.test(result)) {
value = result;
}
} catch (e) {}
- value = encodeURIComponent(String(value));
- value = value.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
+ if (!converter.write) {
+ value = encodeURIComponent(String(value))
+ .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
+ } else {
+ value = converter.write(value, key);
+ }
key = encodeURIComponent(String(key));
key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
key = key.replace(/[\(\)]/g, escape);
return (document.cookie = [
key, '=', value,
- attributes.expires && '; expires=' + attributes.expires.toUTCString(), // use expires attribute, max-age is not supported by IE
- attributes.path && '; path=' + attributes.path,
- attributes.domain && '; domain=' + attributes.domain,
- attributes.secure ? '; secure' : ''
+ attributes.expires ? '; expires=' + attributes.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
+ attributes.path ? '; path=' + attributes.path : '',
+ attributes.domain ? '; domain=' + attributes.domain : '',
+ attributes.secure ? '; secure' : ''
].join(''));
}
// Read
@@ -84,19 +91,21 @@
var rdecode = /(%[0-9A-Z]{2})+/g;
var i = 0;
for (; i < cookies.length; i++) {
var parts = cookies[i].split('=');
- var name = parts[0].replace(rdecode, decodeURIComponent);
var cookie = parts.slice(1).join('=');
if (cookie.charAt(0) === '"') {
cookie = cookie.slice(1, -1);
}
try {
- cookie = converter && converter(cookie, name) || cookie.replace(rdecode, decodeURIComponent);
+ var name = parts[0].replace(rdecode, decodeURIComponent);
+ cookie = converter.read ?
+ converter.read(cookie, name) : converter(cookie, name) ||
+ cookie.replace(rdecode, decodeURIComponent);
if (this.json) {
try {
cookie = JSON.parse(cookie);
} catch (e) {}
@@ -114,11 +123,14 @@
}
return result;
}
- api.get = api.set = api;
+ api.set = api;
+ api.get = function (key) {
+ return api(key);
+ };
api.getJSON = function () {
return api.apply({
json: true
}, [].slice.call(arguments));
};
@@ -133,7 +145,7 @@
api.withConverter = init;
return api;
}
- return init();
+ return init(function () {});
}));