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 () {}); }));