76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav GlassYUI.add('datatype-number-parse', function(Y) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass/**
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * Parse number submodule.
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass *
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @module datatype
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @submodule datatype-number-parse
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @for DataType.Number
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass */
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glassvar LANG = Y.Lang;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav GlassY.mix(Y.namespace("DataType.Number"), {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass /**
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * Converts data to type Number.
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass *
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @method parse
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @param data {String | Number | Boolean} Data to convert. The following
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * values return as null: null, undefined, NaN, "".
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass * @return {Number} A number, or null.
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass */
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass parse: function(data) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var number = (data === null) ? data : +data;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass if(LANG.isNumber(number)) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass return number;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass else {
a15bb17cdc73125893c21175e7afcdd80fccde10Allen Rabinovich Y.log("Could not parse data to type Number", "warn", "datatype-number");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass return null;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass});
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass// Add Parsers shortcut
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav GlassY.namespace("Parsers").number = Y.DataType.Number.parse;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass}, '@VERSION@' );