Henning Snater has uploaded a new change for review.
https://gerrit.wikimedia.org/r/65964
Change subject: [coordinate.js] Implemented coordinate value parser
......................................................................
[coordinate.js] Implemented coordinate value parser
Change-Id: I78f8158c0a10c10cd0c1398220d471aa7d312c91
---
M ValueParsers/Resources.php
M ValueParsers/ValueParsers.mw.php
A ValueParsers/resources/parsers/CoordinateParser.js
A ValueParsers/tests/qunit/parsers/CoordinateParser.tests.js
4 files changed, 100 insertions(+), 2 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/DataValues
refs/changes/64/65964/1
diff --git a/ValueParsers/Resources.php b/ValueParsers/Resources.php
index 84913a5..2512761 100644
--- a/ValueParsers/Resources.php
+++ b/ValueParsers/Resources.php
@@ -65,6 +65,7 @@
'valueParsers.parsers' => $moduleTemplate + array(
'scripts' => array( // TODO: one module per parser
'parsers/BoolParser.js',
+ 'parsers/CoordinateParser.js',
'parsers/FloatParser.js',
'parsers/IntParser.js',
'parsers/StringParser.js',
@@ -74,7 +75,8 @@
'dependencies' => array(
'valueParsers.ValueParser',
'valueParsers.api',
- 'time.js', // required by TimeValue
+ 'coordinate.js', // required by CoordinateParser
+ 'time.js', // required by TimeParser
),
),
diff --git a/ValueParsers/ValueParsers.mw.php b/ValueParsers/ValueParsers.mw.php
index 4f89c8d..d8dd842 100644
--- a/ValueParsers/ValueParsers.mw.php
+++ b/ValueParsers/ValueParsers.mw.php
@@ -129,6 +129,7 @@
$testModules['qunit']['ext.valueParsers.parsers'] = $moduleTemplate +
array(
'scripts' => array(
'tests/qunit/parsers/BoolParser.tests.js',
+ 'tests/qunit/parsers/CoordinateParser.tests.js',
'tests/qunit/parsers/FloatParser.tests.js',
'tests/qunit/parsers/IntParser.tests.js',
'tests/qunit/parsers/StringParser.tests.js',
@@ -137,7 +138,6 @@
),
'dependencies' => array(
'ext.valueParsers.tests',
- 'time.js'
),
);
diff --git a/ValueParsers/resources/parsers/CoordinateParser.js
b/ValueParsers/resources/parsers/CoordinateParser.js
new file mode 100644
index 0000000..b1e1c12
--- /dev/null
+++ b/ValueParsers/resources/parsers/CoordinateParser.js
@@ -0,0 +1,43 @@
+/**
+ * @file
+ * @ingroup ValueParsers
+ *
+ * @licence GNU GPL v2+
+ *
+ * @author H. Snater < [email protected] >
+ */
+( function( vp, dv, $, Coordinate ) {
+ 'use strict';
+
+ var PARENT = vp.ValueParser;
+
+ /**
+ * Constructor for coordinate parsers.
+ *
+ * @constructor
+ * @extends vp.ValueParser
+ * @since 0.1
+ */
+ vp.CoordinateParser = dv.util.inherit( PARENT, {
+ /**
+ * @see vp.ValueParser.parse
+ * @since 0.1
+ *
+ * @param {coordinate.Coordinate} coordinate
+ * @return $.Promise
+ */
+ parse: function( coordinate ) {
+ var deferred = $.Deferred();
+
+ if( coordinate.isValid() ) {
+ var dataValue = new dv.CoordinateValue(
coordinate );
+ deferred.resolve( dataValue );
+ } else {
+ deferred.reject();
+ }
+
+ return deferred.promise();
+ }
+ } );
+
+}( valueParsers, dataValues, jQuery, coordinate.Coordinate ) );
diff --git a/ValueParsers/tests/qunit/parsers/CoordinateParser.tests.js
b/ValueParsers/tests/qunit/parsers/CoordinateParser.tests.js
new file mode 100644
index 0000000..9bded66
--- /dev/null
+++ b/ValueParsers/tests/qunit/parsers/CoordinateParser.tests.js
@@ -0,0 +1,53 @@
+/**
+ * @since 0.1
+ * @file
+ * @ingroup ValueParsers
+ *
+ * @licence GNU GPL v2+
+ *
+ * @author H. Snater < [email protected] >
+ */
+( function( vp, dv, $, QUnit, Coordinate ) {
+ 'use strict';
+
+ var PARENT = vp.tests.ValueParserTest;
+
+ /**
+ * Constructor for creating a test object holding tests for the
CoordinateParser.
+ *
+ * @constructor
+ * @extends dv.tests.ValueParserTest
+ * @since 0.1
+ */
+ vp.tests.CoordinateParserTest = vp.util.inherit( PARENT, {
+
+ /**
+ * @see vp.tests.ValueParserTest.getObject
+ */
+ getObject: function() {
+ return vp.CoordinateParser;
+ },
+
+ /**
+ * @see vp.tests.ValueParserTest.getParseArguments
+ */
+ getParseArguments: function() {
+ return [
+ [
+ new Coordinate( '1.5 1.25' ),
+ new dv.CoordinateValue( new Coordinate(
'1.5 1.25' ) )
+ ],
+ [
+ new Coordinate( '-50 -20' ),
+ new dv.CoordinateValue( new Coordinate(
'-50 -20' ) )
+ ]
+ ];
+ }
+
+ } );
+
+ var test = new vp.tests.CoordinateParserTest();
+
+ test.runTests( 'valueParsers.CoordinateParser' );
+
+}( valueParsers, dataValues, jQuery, QUnit, coordinate.Coordinate ) );
--
To view, visit https://gerrit.wikimedia.org/r/65964
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I78f8158c0a10c10cd0c1398220d471aa7d312c91
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DataValues
Gerrit-Branch: master
Gerrit-Owner: Henning Snater <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits