Skip to content

Decoupled QUnit tests from ResourceLoader #14

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jan 22, 2014
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Re-implemented basic JavaScript value parsers
  • Loading branch information
snaterlicious committed Jan 20, 2014
commit 02193fef4ee090836c6f37af923bf43816747be0
48 changes: 40 additions & 8 deletions src/valueParsers/parsers/BoolParser.js
Original file line number Diff line number Diff line change
@@ -1,24 +1,56 @@
/**
* @licence GNU GPL v2+
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
* @author H. Snater < mediawiki@snater.com >
*/
( function( vp, dv, util ) {
( function( vp, dv, util, $ ) {
'use strict';

var PARENT = vp.ApiBasedValueParser;
var PARENT = vp.ValueParser;

/**
* Constructor for string to boolean parsers.
* Constructor for string-to-BoolValue parsers.
*
* @constructor
* @extends vp.ApiBasedValueParser
* @extends valueParsers.ValueParser
* @since 0.1
*/
vp.BoolParser = util.inherit( PARENT, {
/**
* @see ApiBasedValueParser.API_VALUE_PARSER_ID
* @see valueParsers.ValueParser.parse
* @since 0.1
*
* @param {string} rawValue
* @return jQuery.Promise
*/
API_VALUE_PARSER_ID: 'bool'
parse: function( rawValue ) {
var deferred = $.Deferred(),
lowerCaseRawValue = rawValue.toLowerCase();

for( var value in this.constructor.values ) {
if( value === lowerCaseRawValue ) {
deferred.resolve( new dv.BoolValue( this.constructor.values[value] ) );
break;
}
}

if( deferred.state() === 'pending' ) {
// TODO: Clearly define reject() behaviour / parameters returned by reject()
deferred.reject( 'BoolParser: Unable to parse "' + rawValue + '"' );
}

return deferred.promise();
}
} );

}( valueParsers, dataValues, util ) );
vp.BoolParser.values = {
'yes': true,
'on': true,
'1': true,
'true': true,
'no': false,
'off': false,
'0': false,
'false': false
};

}( valueParsers, dataValues, util, jQuery ) );
33 changes: 25 additions & 8 deletions src/valueParsers/parsers/FloatParser.js
Original file line number Diff line number Diff line change
@@ -1,24 +1,41 @@
/**
* @licence GNU GPL v2+
* @author Daniel Werner < danweetz@web.de >
* @author H. Snater < mediawiki@snater.com >
*/
( function( vp, dv, util ) {
( function( vp, dv, util, $ ) {
'use strict';

var PARENT = vp.ApiBasedValueParser;
var PARENT = vp.ValueParser;

/**
* Constructor for string to number parsers.
* Constructor for string-to-float parsers.
*
* @constructor
* @extends vp.ApiBasedValueParser
* @extends valueParsers.ValueParser
* @since 0.1
*/
vp.FloatParser = util.inherit( PARENT, {
/**
* @see ApiBasedValueParser.API_VALUE_PARSER_ID
* @see valueParsers.ValueParser.parse
* @since 0.1
*
* @param {string} rawValue
* @return jQuery.Promise
*/
API_VALUE_PARSER_ID: 'float'
parse: function( rawValue ) {
var deferred = $.Deferred();

// TODO: Localization
if( !isNaN( parseFloat( rawValue ) ) && isFinite( rawValue ) ) {
deferred.resolve( new dv.NumberValue( parseFloat( rawValue ) ) );
}

if( deferred.state() === 'pending' ) {
deferred.reject( 'FloatParser: Unable to parse "' + rawValue + '"' );
}

return deferred.promise();
}
} );

}( valueParsers, dataValues, util ) );
}( valueParsers, dataValues, util, jQuery ) );
33 changes: 25 additions & 8 deletions src/valueParsers/parsers/IntParser.js
Original file line number Diff line number Diff line change
@@ -1,24 +1,41 @@
/**
* @licence GNU GPL v2+
* @author Jeroen De Dauw < jeroendedauw@gmail.com >
* @author H. Snater < mediawiki@snater.com >
*/
( function( vp, dv, util ) {
( function( vp, dv, util, $ ) {
'use strict';

var PARENT = vp.ApiBasedValueParser;
var PARENT = vp.ValueParser;

/**
* Constructor for string to integer parsers.
* Constructor for string-to-float parsers.
*
* @constructor
* @extends vp.ApiBasedValueParser
* @extends valueParsers.ValueParser
* @since 0.1
*/
vp.IntParser = util.inherit( PARENT, {
/**
* @see ApiBasedValueParser.API_VALUE_PARSER_ID
* @see valueParsers.ValueParser.parse
* @since 0.1
*
* @param {string} rawValue
* @return jQuery.Promise
*/
API_VALUE_PARSER_ID: 'int'
parse: function( rawValue ) {
var deferred = $.Deferred();

// TODO: Localization, option to set integer base
if( /^(-)?\d+$/.test( rawValue ) ) {
deferred.resolve( new dv.NumberValue( parseInt( rawValue, 10 ) ) );
}

if( deferred.state() === 'pending' ) {
deferred.reject( 'InParser: Unable to parse "' + rawValue + '"' );
}

return deferred.promise();
}
} );

}( valueParsers, dataValues, util ) );
}( valueParsers, dataValues, util, jQuery ) );
6 changes: 2 additions & 4 deletions tests/src/valueParsers/parsers/BoolParser.tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@
( function( vp, dv, util ) {
'use strict';

var PARENT = vp.tests.ValueParserTest,
constructor = function() {
};
var PARENT = vp.tests.ValueParserTest;

/**
* Constructor for creating a test object holding tests for the BoolParser.
Expand All @@ -16,7 +14,7 @@
* @extends dv.tests.ValueParserTest
* @since 0.1
*/
vp.tests.BoolParserTest = util.inherit( PARENT, constructor, {
vp.tests.BoolParserTest = util.inherit( PARENT, {

/**
* @see vp.tests.ValueParserTest.getConstructor
Expand Down
6 changes: 2 additions & 4 deletions tests/src/valueParsers/parsers/IntParser.tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@
( function( vp, dv, util ) {
'use strict';

var PARENT = vp.tests.ValueParserTest,
constructor = function() {
};
var PARENT = vp.tests.ValueParserTest;

/**
* Constructor for creating a test object holding tests for the IntParser.
Expand All @@ -16,7 +14,7 @@
* @extends dv.tests.ValueParserTest
* @since 0.1
*/
vp.tests.IntParserTest = util.inherit( PARENT, constructor, {
vp.tests.IntParserTest = util.inherit( PARENT, {

/**
* @see vp.tests.ValueParserTest.getConstructor
Expand Down