datasource-dataparser.js revision fde564a2cb44f0d31d9eb8e59bac8c457f7d8ca6
9be8460a4d4915ca1a46021adc07b75568cb47eaTrond Norbye * Extends DataSource with schema-based parsing functionality.
9be8460a4d4915ca1a46021adc07b75568cb47eaTrond Norbye * @module datasource-dataparser
9be8460a4d4915ca1a46021adc07b75568cb47eaTrond Norbye * @requires datasource-base,dataparser-base
9be8460a4d4915ca1a46021adc07b75568cb47eaTrond Norbye * @title DataSource DataParser Extension
9be8460a4d4915ca1a46021adc07b75568cb47eaTrond Norbye * Adds parsability to the YUI DataSource utility.
9be8460a4d4915ca1a46021adc07b75568cb47eaTrond Norbye * @class Parsable
9be8460a4d4915ca1a46021adc07b75568cb47eaTrond Norbye Parsable = function() {};
9be8460a4d4915ca1a46021adc07b75568cb47eaTrond Norbye /////////////////////////////////////////////////////////////////////////////
d470e59c0405a31b7e5f194bd9b705e91b12bf0aKryštof Tulinger // DataSource Attributes
9be8460a4d4915ca1a46021adc07b75568cb47eaTrond Norbye /////////////////////////////////////////////////////////////////////////////
9be8460a4d4915ca1a46021adc07b75568cb47eaTrond Norbye * Instance of DataParser.
b83ec1ad246d9827a68e9bb6ec2669908ab75d98Knut Anders Hatlen * @attribute parser
b83ec1ad246d9827a68e9bb6ec2669908ab75d98Knut Anders Hatlen * @type Y.DataParser.Base
013b5dd2cc9412960b4ebb2fcce23dc54c901a26Trond Norbye * @default null
9be8460a4d4915ca1a46021adc07b75568cb47eaTrond Norbye return ((value instanceof Y.DataParser.Base) || (value === null));
838924562130977ca1a3d3839d146fcda39ea1afKryštof Tulinger * Overriding <code>data</code> event handler parses raw data into a normalized response.
a92ced6cf7126aca5fed821c5349a642196c67d9Trond Norbye * @method _handleData
9be8460a4d4915ca1a46021adc07b75568cb47eaTrond Norbye * @param e {Event.Facade} Event Facade.
d470e59c0405a31b7e5f194bd9b705e91b12bf0aKryštof Tulinger * @param o {Object} Object with the following properties:
d470e59c0405a31b7e5f194bd9b705e91b12bf0aKryštof Tulinger * <dt>tId (Number)</dt> <dd>Unique transaction ID.</dd>
d470e59c0405a31b7e5f194bd9b705e91b12bf0aKryštof Tulinger * <dt>request (Object)</dt> <dd>The request.</dd>
d470e59c0405a31b7e5f194bd9b705e91b12bf0aKryštof Tulinger * <dt>callback (Object)</dt> <dd>The callback object.</dd>
d470e59c0405a31b7e5f194bd9b705e91b12bf0aKryštof Tulinger * <dt>data (Object)</dt> <dd>The raw response.</dd>
9be8460a4d4915ca1a46021adc07b75568cb47eaTrond Norbye _handleData: function(e, o) {
eb1776903fd1f998009e97470a65fba8a499a0d9Lubos Kosco var response = (this.get("parser") && this.get("parser").parse(o.data));
9be8460a4d4915ca1a46021adc07b75568cb47eaTrond Norbye this.fire("response", null, Y.mix(o, response));