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_(');