From 415beaa0b06fc9cb3e9628898825172984eb8ffd Mon Sep 17 00:00:00 2001 From: n1474335 Date: Wed, 29 Aug 2018 17:59:48 +0000 Subject: [PATCH] Tidied up Geohash operations --- package-lock.json | 27 +++++++++++---------------- src/core/config/Categories.json | 8 ++++---- src/core/operations/FromGeohash.mjs | 13 +++++++------ src/core/operations/ToGeohash.mjs | 12 +++++++----- test/tests/operations/FromGeohash.mjs | 1 - test/tests/operations/ToGeohash.mjs | 1 - 6 files changed, 29 insertions(+), 33 deletions(-) diff --git a/package-lock.json b/package-lock.json index a8d603ff..959bc6df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4197,14 +4197,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4219,20 +4217,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -4349,8 +4344,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -4362,7 +4356,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4377,7 +4370,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4489,8 +4481,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -4623,7 +4614,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -7275,6 +7265,11 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, + "ngeohash": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/ngeohash/-/ngeohash-0.6.0.tgz", + "integrity": "sha1-MpcT6ec9HxpG2SqrC5StuUUz9oc=" + }, "nice-try": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", diff --git a/src/core/config/Categories.json b/src/core/config/Categories.json index 75bdcb36..ab3bc486 100755 --- a/src/core/config/Categories.json +++ b/src/core/config/Categories.json @@ -53,9 +53,7 @@ "To MessagePack", "From MessagePack", "To Braille", - "From Braille", - "To Geohash", - "From Geohash" + "From Braille" ] }, { @@ -291,7 +289,9 @@ "Adler-32 Checksum", "CRC-16 Checksum", "CRC-32 Checksum", - "TCP/IP Checksum" + "TCP/IP Checksum", + "To Geohash", + "From Geohash" ] }, { diff --git a/src/core/operations/FromGeohash.mjs b/src/core/operations/FromGeohash.mjs index 1010da11..b70273da 100644 --- a/src/core/operations/FromGeohash.mjs +++ b/src/core/operations/FromGeohash.mjs @@ -19,13 +19,12 @@ class FromGeohash extends Operation { super(); this.name = "From Geohash"; - this.module = "Default"; - this.description = "Converts Geohash strings into Lat / Long coordinates. For example, ww8p1r4t8 becomes 37.8324,112.5584."; + this.module = "Hashing"; + this.description = "Converts Geohash strings into Lat/Long coordinates. For example, ww8p1r4t8 becomes 37.8324,112.5584."; this.infoURL = "https://wikipedia.org/wiki/Geohash"; this.inputType = "string"; this.outputType = "string"; - this.args = [ - ]; + this.args = []; } /** @@ -34,8 +33,10 @@ class FromGeohash extends Operation { * @returns {string} */ run(input, args) { - const coords = geohash.decode(input); - return [coords.latitude, coords.longitude].join(","); + return input.split("\n").map(line => { + const coords = geohash.decode(line); + return [coords.latitude, coords.longitude].join(","); + }).join("\n"); } } diff --git a/src/core/operations/ToGeohash.mjs b/src/core/operations/ToGeohash.mjs index 826145ae..0e7f53ac 100644 --- a/src/core/operations/ToGeohash.mjs +++ b/src/core/operations/ToGeohash.mjs @@ -19,8 +19,8 @@ class ToGeohash extends Operation { super(); this.name = "To Geohash"; - this.module = "Default"; - this.description = "Converts Lat / Long coordinates into a Geohash string. For example, 37.8324,112.5584 becomes ww8p1r4t8."; + this.module = "Hashing"; + this.description = "Converts Lat/Long coordinates into a Geohash string. For example, 37.8324,112.5584 becomes ww8p1r4t8."; this.infoURL = "https://wikipedia.org/wiki/Geohash"; this.inputType = "string"; this.outputType = "string"; @@ -41,9 +41,11 @@ class ToGeohash extends Operation { run(input, args) { const [precision] = args; - input = input.replace(/ /g, ""); - if (input === "") return ""; - return geohash.encode(...input.split(",").map(num => parseFloat(num)), precision); + return input.split("\n").map(line => { + line = line.replace(/ /g, ""); + if (line === "") return ""; + return geohash.encode(...line.split(",").map(num => parseFloat(num)), precision); + }).join("\n"); } } diff --git a/test/tests/operations/FromGeohash.mjs b/test/tests/operations/FromGeohash.mjs index 3dbe85ae..2ac68c58 100644 --- a/test/tests/operations/FromGeohash.mjs +++ b/test/tests/operations/FromGeohash.mjs @@ -2,7 +2,6 @@ * To Geohash tests * * @author gchq77703 - * * @copyright Crown Copyright 2018 * @license Apache-2.0 */ diff --git a/test/tests/operations/ToGeohash.mjs b/test/tests/operations/ToGeohash.mjs index bf3e9858..b50e7280 100644 --- a/test/tests/operations/ToGeohash.mjs +++ b/test/tests/operations/ToGeohash.mjs @@ -2,7 +2,6 @@ * To Geohash tests * * @author gchq77703 - * * @copyright Crown Copyright 2018 * @license Apache-2.0 */