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

Reply via email to