You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.7 KiB
74 lines
1.7 KiB
/*
|
|
YUI 3.17.2 (build 9c3c78e)
|
|
Copyright 2014 Yahoo! Inc. All rights reserved.
|
|
Licensed under the BSD License.
|
|
http://yuilibrary.com/license/
|
|
*/
|
|
|
|
YUI.add('dataschema-base', function (Y, NAME) {
|
|
|
|
/**
|
|
* 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");
|
|
|
|
|
|
}, '3.17.2', {"requires": ["base"]});
|
|
|