Version 3.18.1
Show:

File: dataschema/js/dataschema-base.js

            /**
             * The DataSchema utility provides a common configurable interface for widgets to
             * apply a given schema to a variety of data.
             *
             * @module dataschema
             * @main dataschema
             */
            
            /**
             * Provides the base DataSchema implementation, which can be extended to
             * create DataSchemas for specific data formats, such XML, JSON, text and
             * arrays.
             *
             * @module dataschema
             * @submodule dataschema-base
             */
            
            var LANG = Y.Lang,
            /**
             * Base class for the YUI DataSchema Utility.
             * @class DataSchema.Base
             * @static
             */
                SchemaBase = {
                /**
                 * Overridable method returns data as-is.
                 *
                 * @method apply
                 * @param schema {Object} Schema to apply.
                 * @param data {Object} Data.
                 * @return {Object} Schema-parsed data.
                 * @static
                 */
                apply: function(schema, data) {
                    return data;
                },
            
                /**
                 * Applies field parser, if defined
                 *
                 * @method parse
                 * @param value {Object} Original value.
                 * @param field {Object} Field.
                 * @return {Object} Type-converted value.
                 */
                parse: function(value, field) {
                    if(field.parser) {
                        var parser = (LANG.isFunction(field.parser)) ?
                        field.parser : Y.Parsers[field.parser+''];
                        if(parser) {
                            value = parser.call(this, value);
                        }
                        else {
                            Y.log("Could not find parser for field " + Y.dump(field), "warn", "dataschema-json");
                        }
                    }
                    return value;
                }
            };
            
            Y.namespace("DataSchema").Base = SchemaBase;
            Y.namespace("Parsers");