The Patternslib storage utility API
Patternslib includes a simple storage utility which you can use to store data for a pattern. The implementation is similar to the Web storage mechanism introduced in HTML5 (and in fact uses that as the underlying storage), but offers multiple named storages and a few extensions that make it easier to use in patterns.
Example
   var store = require("../core/store");
   if (store.supported)
       alert("Your browser does not support storage.");
   else {
       var storage = store.local("mypattern");
       storage.set("key", true);
       alert("The stored value is: " + storage.get("key"));
   }
The Store API
- 
    store.supported A boolean flag indicating if the browser supports web storage. 
- 
    store.local(name) - name (String): identifier for the storage section. This should almost always be the name of the pattern.
 Return a local storage instance. Local storage is persistant accross multiple browser sessions and tabs, and will survive a browser restart. 
- 
    store.session(name) Parameters: - name (String): identifier for the storage section. This should almost always be the name of the pattern.
 Return a session storage instance. Session storage is tied to a single browser session. If a browser has multiple tabs open on the same website each tab will be seen as a different session. Session storage is not guaranteed to survive a browser restart. 
Storage instance
The API for a storage instance mimicks the HTML5 Storage interface It differs in that it adds a method to remove all data for a pattern, can return all data as a single javascript object and can store all values that can be JSON serialized instead of only strings.
- 
    storage.get(name) Parameters: - name (String): name of the stored variable to retrieve
 Retrieve (a copy of) a stored value from the storage. If no value for the given name was stored, nullwill be returned.
- 
    storage.set(name, value) Parameters: - name (String): name of the variable to store
- value (Object): value to store. Can be any type that is JSON serializable.
 Store a variable. This will replace an existing value if already present. Throws QuoteExceededError: This exception is thrown if the browser can not store this value. 
- 
    storage.remove(name) Parameters: - name (String): name of the variable to remove
 Remove a variable from the storage. Unknown names are silently ignored. 
- 
    storage.clear() This method removes all variables stored for the pattern. 
- 
    storage.all() This method returns an object containing a copy of all stored data. Please note that this is only a copy: modifications made to the returned object will not be stored. Returns an object with all the stored data.