sventon subversion web client - http://www.sventon.org
[show recent changes]
 
  Help
Rev: HEAD (53458) - http://anonsvn.icesoft.org/repo / bridge-support / patches / bridge-support-sf-12692 / src / main / javascript / cookie.js
Show File - cookie.js  [show properties]
spinner
/*
 * Copyright 2004-2013 ICEsoft Technologies Canada Corp.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the
 * License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
10   * Unless required by applicable law or agreed to in writing,
11   * software distributed under the License is distributed on an "AS
12   * IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
13   * express or implied. See the License for the specific language
14   * governing permissions and limitations under the License.
15   */
16 
17  function lookupCookieValue(name) {
18      var tupleString = detect(split(asString(document.cookie), '; '), function(tuple) {
19          return startsWith(tuple, name);
20      }, function() {
21          throw 'Cannot find value for cookie: ' + name;
22      });
23 
24      return decodeURIComponent(contains(tupleString, '=') ? split(tupleString, '=')[1] : '');
25  }
26 
27  function lookupCookie(name, failThunk) {
28      try {
29          return Cookie(name, lookupCookieValue(name));
30      } catch (e) {
31          if (failThunk) {
32              return failThunk();
33          } else {
34              throw e;
35          }
36      }
37  }
38 
39  function existsCookie(name) {
40      var exists = true;
41      lookupCookie(name, function() {
42          exists = false;
43      });
44      return exists;
45  }
46 
47  var update = operator();
48  var remove = operator();
49  function Cookie(name, val, path) {
50      val = val || '';
51      path = path || '/';
52      document.cookie = name + '=' + val + '; path=' + path;
53 
54      return object(function(method) {
55          method(value, function(self) {
56              return lookupCookieValue(name);
57          });
58 
59          method(update, function(self, val) {
60              document.cookie = name + '=' + encodeURIComponent(val) + '; path=' + path;
61              return self;
62          });
63 
64          method(remove, function(self) {
65              var date = new Date();
66              date.setTime(date.getTime() - 24 * 60 * 60 * 1000);
67              document.cookie = name + '=; expires=' + date.toGMTString() + '; path=' + path;
68          });
69 
70          method(asString, function(self) {
71              return 'Cookie[' + name + ', ' + value(self) + ', ' + path + ']';
72          });
73      });
74  }


feed icon

sventon 2.5.1