diff -r 322d0feea350 -r 89ef5ed3c48b src/cm/media/js/lib/yui/yui_3.10.3/build/datasource-cache/datasource-cache-debug.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/lib/yui/yui_3.10.3/build/datasource-cache/datasource-cache-debug.js Tue Jul 16 14:29:46 2013 +0200 @@ -0,0 +1,173 @@ +/* +YUI 3.10.3 (build 2fb5187) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + +YUI.add('datasource-cache', function (Y, NAME) { + +/** + * Plugs DataSource with caching functionality. + * + * @module datasource + * @submodule datasource-cache + */ + +/** + * DataSourceCache extension binds Cache to DataSource. + * @class DataSourceCacheExtension + */ +var DataSourceCacheExtension = function() { +}; + +Y.mix(DataSourceCacheExtension, { + /** + * The namespace for the plugin. This will be the property on the host which + * references the plugin instance. + * + * @property NS + * @type String + * @static + * @final + * @value "cache" + */ + NS: "cache", + + /** + * Class name. + * + * @property NAME + * @type String + * @static + * @final + * @value "dataSourceCacheExtension" + */ + NAME: "dataSourceCacheExtension" +}); + +DataSourceCacheExtension.prototype = { + /** + * Internal init() handler. + * + * @method initializer + * @param config {Object} Config object. + * @private + */ + initializer: function(config) { + this.doBefore("_defRequestFn", this._beforeDefRequestFn); + this.doBefore("_defResponseFn", this._beforeDefResponseFn); + }, + + /** + * First look for cached response, then send request to live data. + * + * @method _beforeDefRequestFn + * @param e {Event.Facade} Event Facade with the following properties: + *
+ *
tId (Number)
Unique transaction ID.
+ *
request (Object)
The request.
+ *
callback (Object)
The callback object.
+ *
cfg (Object)
Configuration object.
+ *
+ * @protected + */ + _beforeDefRequestFn: function(e) { + // Is response already in the Cache? + var entry = (this.retrieve(e.request)) || null, + payload = e.details[0]; + + if (entry && entry.response) { + payload.cached = entry.cached; + payload.response = entry.response; + payload.data = entry.data; + + this.get("host").fire("response", payload); + + return new Y.Do.Halt("DataSourceCache extension halted _defRequestFn"); + } + }, + + /** + * Adds data to cache before returning data. + * + * @method _beforeDefResponseFn + * @param e {Event.Facade} Event Facade with the following properties: + *
+ *
tId (Number)
Unique transaction ID.
+ *
request (Object)
The request.
+ *
callback (Object)
The callback object with the following properties: + *
+ *
success (Function)
Success handler.
+ *
failure (Function)
Failure handler.
+ *
+ *
+ *
data (Object)
Raw data.
+ *
response (Object)
Normalized response object with the following properties: + *
+ *
cached (Object)
True when response is cached.
+ *
results (Object)
Parsed results.
+ *
meta (Object)
Parsed meta data.
+ *
error (Object)
Error object.
+ *
+ *
+ *
cfg (Object)
Configuration object.
+ *
+ * @protected + */ + _beforeDefResponseFn: function(e) { + // Add to Cache before returning + if(e.response && !e.cached) { + this.add(e.request, e.response); + } + } +}; + +Y.namespace("Plugin").DataSourceCacheExtension = DataSourceCacheExtension; + + + +/** + * DataSource plugin adds cache functionality. + * @class DataSourceCache + * @extends Cache + * @uses Plugin.Base, DataSourceCachePlugin + */ +function DataSourceCache(config) { + var cache = config && config.cache ? config.cache : Y.Cache, + tmpclass = Y.Base.create("dataSourceCache", cache, [Y.Plugin.Base, Y.Plugin.DataSourceCacheExtension]), + tmpinstance = new tmpclass(config); + tmpclass.NS = "tmpClass"; + return tmpinstance; +} + +Y.mix(DataSourceCache, { + /** + * The namespace for the plugin. This will be the property on the host which + * references the plugin instance. + * + * @property NS + * @type String + * @static + * @final + * @value "cache" + */ + NS: "cache", + + /** + * Class name. + * + * @property NAME + * @type String + * @static + * @final + * @value "dataSourceCache" + */ + NAME: "dataSourceCache" +}); + + +Y.namespace("Plugin").DataSourceCache = DataSourceCache; + + +}, '3.10.3', {"requires": ["datasource-local", "plugin", "cache-base"]});