You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by jo...@apache.org on 2017/11/30 13:48:21 UTC

[42/47] tinkerpop git commit: Add toLong() method

Add toLong() method


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/f5733422
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/f5733422
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/f5733422

Branch: refs/heads/TINKERPOP-1489
Commit: f573342296d1d950c03a8584cf81a7066d5411d0
Parents: 61611eb
Author: Jorge Bay Gondra <jo...@gmail.com>
Authored: Wed Nov 29 11:37:24 2017 +0100
Committer: Jorge Bay Gondra <jo...@gmail.com>
Committed: Thu Nov 30 14:45:03 2017 +0100

----------------------------------------------------------------------
 gremlin-javascript/glv/PackageJson.template     |  2 +-
 .../main/javascript/gremlin-javascript/index.js |  4 +++-
 .../gremlin-javascript/lib/structure/graph.js   |  1 -
 .../lib/structure/io/graph-serializer.js        | 21 ++++++++++++++++++--
 .../javascript/gremlin-javascript/lib/utils.js  | 11 ++++++++++
 .../javascript/gremlin-javascript/package.json  |  2 +-
 .../test/cucumber/feature-steps.js              |  6 ++++--
 7 files changed, 39 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f5733422/gremlin-javascript/glv/PackageJson.template
----------------------------------------------------------------------
diff --git a/gremlin-javascript/glv/PackageJson.template b/gremlin-javascript/glv/PackageJson.template
index 4f1ac05..1b54a87 100644
--- a/gremlin-javascript/glv/PackageJson.template
+++ b/gremlin-javascript/glv/PackageJson.template
@@ -49,7 +49,7 @@
   },
   "scripts": {
     "test": "./node_modules/.bin/mocha test/unit test/integration -t 5000",
-    "features": "./node_modules/.bin/cucumber.js --require test/cucumber ../../../../../gremlin-test/features/map/AddVertex.feature",
+    "features": "./node_modules/.bin/cucumber.js --require test/cucumber ../../../../../gremlin-test/features/",
     "unit-test": "./node_modules/.bin/mocha test/unit"
   },
   "engines": {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f5733422/gremlin-javascript/src/main/javascript/gremlin-javascript/index.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/index.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/index.js
index 600ac53..61ab274 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/index.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/index.js
@@ -29,6 +29,7 @@ var graph = require('./lib/structure/graph');
 var gs = require('./lib/structure/io/graph-serializer');
 var rc = require('./lib/driver/remote-connection');
 var Bytecode = require('./lib/process/bytecode');
+var utils = require('./lib/utils');
 
 module.exports = {
   driver: {
@@ -68,6 +69,7 @@ module.exports = {
     Path: graph.Path,
     Property: graph.Property,
     Vertex: graph.Vertex,
-    VertexProperty: graph.VertexProperty
+    VertexProperty: graph.VertexProperty,
+    toLong: utils.toLong
   }
 };
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f5733422/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/graph.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/graph.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/graph.js
index 95fd30f..cbb7e2c 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/graph.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/graph.js
@@ -23,7 +23,6 @@
 'use strict';
 
 var gt = require('../process/graph-traversal');
-var t = require('../process/traversal');
 var TraversalStrategies = require('../process/traversal-strategy').TraversalStrategies;
 var utils = require('../utils');
 var inherits = utils.inherits;

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f5733422/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/graph-serializer.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/graph-serializer.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/graph-serializer.js
index ff3d72d..8e4ad5e 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/graph-serializer.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/structure/io/graph-serializer.js
@@ -24,7 +24,8 @@
 
 var t = require('../../process/traversal');
 var Bytecode = require('../../process/bytecode');
-var g = require('../graph.js');
+var g = require('../graph');
+var utils = require('../../utils');
 
 /**
  * A type serializer
@@ -67,7 +68,8 @@ var serializers = [
   LambdaSerializer,
   EnumSerializer,
   VertexSerializer,
-  EdgeSerializer
+  EdgeSerializer,
+  LongSerializer
 ];
 
 /**
@@ -210,6 +212,21 @@ NumberSerializer.prototype.canBeUsedFor = function (value) {
   return (typeof value === 'number');
 };
 
+function LongSerializer() {
+
+}
+
+NumberSerializer.prototype.serialize = function (item) {
+  return {
+    [typeKey]: 'g:Int64',
+    [valueKey]: item.value
+  };
+};
+
+NumberSerializer.prototype.canBeUsedFor = function (value) {
+  return (value instanceof utils.Long);
+};
+
 function BytecodeSerializer() {
 
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f5733422/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/utils.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/utils.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/utils.js
index 7691dda..cbaa53e 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/utils.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/lib/utils.js
@@ -59,4 +59,15 @@ exports.resolvedPromise = function (promiseFactory) {
 var toPromise = exports.toPromise = function toPromise(promiseFactory, handler) {
   promiseFactory = promiseFactory || defaultPromiseFactory;
   return promiseFactory(handler);
+};
+
+exports.toLong = function toLong(value) {
+  return new Long(value);
+};
+
+var Long = exports.Long = function Long(value) {
+  if (typeof value !== 'string' && typeof value !== 'number') {
+    throw new TypeError('Ty')
+  }
+  this.value = value.toString();
 };
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f5733422/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json b/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
index 7c4a3d6..aae9eb9 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/package.json
@@ -30,7 +30,7 @@
   },
   "scripts": {
     "test": "./node_modules/.bin/mocha test/unit test/integration -t 5000",
-    "features": "./node_modules/.bin/cucumber.js --require test/cucumber ../../../../../gremlin-test/features/map/AddVertex.feature",
+    "features": "./node_modules/.bin/cucumber.js --require test/cucumber ../../../../../gremlin-test/features/",
     "unit-test": "./node_modules/.bin/mocha test/unit"
   },
   "engines": {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f5733422/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
----------------------------------------------------------------------
diff --git a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
index 06a3283..12bc835 100644
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
@@ -29,6 +29,7 @@ const util = require('util');
 const graphModule = require('../../lib/structure/graph');
 const graphTraversalModule = require('../../lib/process/graph-traversal');
 const traversalModule = require('../../lib/process/traversal');
+const utils = require('../../lib/utils');
 const Graph = graphModule.Graph;
 const Path = graphModule.Path;
 const __ = graphTraversalModule.statics;
@@ -185,6 +186,7 @@ function getSandbox(g, parameters) {
     Scope: traversalModule.scope,
     Operator: traversalModule.operator,
     T: traversalModule.t,
+    toLong: utils.toLong
   };
   // Pass the parameter to the sandbox
   Object.keys(parameters).forEach(paramName => sandbox[paramName] = parameters[paramName]);
@@ -194,8 +196,8 @@ function getSandbox(g, parameters) {
 function translate(traversalText) {
   // Remove escaped chars
   traversalText = traversalText.replace(/\\"/g, '"');
-  // Remove long suffix
-  traversalText = traversalText.replace(/\b(\d+)l\b/gi, '$1');
+  // Replace long suffix with Long instance
+  traversalText = traversalText.replace(/\b(\d+)l\b/gi, 'toLong($1)');
   // Change according to naming convention
   traversalText = traversalText.replace(/\.in\(/g, '.in_(');
   traversalText = traversalText.replace(/\.from\(/g, '.from_(');