arangorb 1.4.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/ArangoRB.gemspec +20 -18
  3. data/Gemfile +3 -0
  4. data/README.md +1079 -908
  5. data/lib/AQL.rb +155 -0
  6. data/lib/Batch.rb +97 -0
  7. data/lib/Cache.rb +71 -0
  8. data/lib/Collection.rb +852 -0
  9. data/lib/Database.rb +417 -0
  10. data/lib/Document.rb +346 -0
  11. data/lib/Edge.rb +104 -0
  12. data/lib/Error.rb +125 -0
  13. data/lib/Foxx.rb +277 -0
  14. data/lib/Graph.rb +325 -0
  15. data/lib/Index.rb +126 -0
  16. data/lib/Replication.rb +235 -0
  17. data/lib/Request.rb +143 -0
  18. data/lib/Server.rb +466 -0
  19. data/lib/Task.rb +120 -0
  20. data/lib/Transaction.rb +115 -0
  21. data/lib/Traversal.rb +224 -0
  22. data/lib/User.rb +197 -0
  23. data/lib/Vertex.rb +127 -0
  24. data/lib/View.rb +151 -0
  25. data/lib/arangorb.rb +23 -15
  26. data/lib/helpers/Error.rb +28 -0
  27. data/lib/helpers/Return.rb +53 -0
  28. metadata +64 -45
  29. data/lib/ArangoRB_AQL.rb +0 -181
  30. data/lib/ArangoRB_Cache.rb +0 -174
  31. data/lib/ArangoRB_Col.rb +0 -526
  32. data/lib/ArangoRB_DB.rb +0 -363
  33. data/lib/ArangoRB_Doc.rb +0 -319
  34. data/lib/ArangoRB_Edg.rb +0 -184
  35. data/lib/ArangoRB_Gra.rb +0 -201
  36. data/lib/ArangoRB_Index.rb +0 -135
  37. data/lib/ArangoRB_Replication.rb +0 -261
  38. data/lib/ArangoRB_Ser.rb +0 -446
  39. data/lib/ArangoRB_Task.rb +0 -129
  40. data/lib/ArangoRB_Tra.rb +0 -169
  41. data/lib/ArangoRB_Tran.rb +0 -68
  42. data/lib/ArangoRB_User.rb +0 -157
  43. data/lib/ArangoRB_Ver.rb +0 -162
  44. data/spec/arangoRB_helper.rb +0 -4
  45. data/spec/arangoRestart_helper.rb +0 -14
  46. data/spec/arangorb-1.3.0.gem +0 -0
  47. data/spec/lib/0.1.0/arangoAQL_helper.rb +0 -64
  48. data/spec/lib/0.1.0/arangoC_helper.rb +0 -170
  49. data/spec/lib/0.1.0/arangoDB_helper.rb +0 -119
  50. data/spec/lib/0.1.0/arangoDoc_helper.rb +0 -79
  51. data/spec/lib/0.1.0/arangoE_helper.rb +0 -50
  52. data/spec/lib/0.1.0/arangoG_helper.rb +0 -78
  53. data/spec/lib/0.1.0/arangoS_helper.rb +0 -37
  54. data/spec/lib/0.1.0/arangoT_helper.rb +0 -48
  55. data/spec/lib/0.1.0/arangoV_helper.rb +0 -65
  56. data/spec/lib/1.0.0/arangoC_helper.rb +0 -73
  57. data/spec/lib/1.0.0/arangoDB_helper.rb +0 -48
  58. data/spec/lib/1.0.0/arangoI_helper.rb +0 -43
  59. data/spec/lib/1.0.0/arangoS_helper.rb +0 -192
  60. data/spec/lib/1.0.0/arangoTa_helper.rb +0 -49
  61. data/spec/lib/1.0.0/arangoTr_helper.rb +0 -15
  62. data/spec/lib/1.0.0/arangoU_helper.rb +0 -72
  63. data/spec/lib/1.1.0/arangoRB_helper.rb +0 -144
  64. data/spec/lib/1.1.0/arangoRB_walks_helper.rb +0 -19
  65. data/spec/lib/1.2.0/arangoCache_helper.rb +0 -66
  66. data/spec/lib/1.3.0/arangoHash_helper.rb +0 -30
  67. data/spec/lib/arangoRB_0.1.0_helper.rb +0 -9
  68. data/spec/lib/arangoRB_1.0.0_helper.rb +0 -6
  69. data/spec/lib/arangoRB_1.1.0_helper.rb +0 -2
  70. data/spec/lib/arangoRB_1.2.0_helper.rb +0 -2
  71. data/spec/spec_helper.rb +0 -42
@@ -1,79 +0,0 @@
1
- require_relative './../../spec_helper'
2
-
3
- describe ArangoDocument do
4
- context "#new" do
5
- it "create a new Document instance without global" do
6
- myDocument = ArangoDocument.new collection: "MyCollection", database: "MyDatabase"
7
- expect(myDocument.collection.name).to eq "MyCollection"
8
- end
9
-
10
- it "create a new instance with global" do
11
- myDocument = ArangoDocument.new key: "myKey", body: {"Hello" => "World"}
12
- expect(myDocument.key).to eq "myKey"
13
- end
14
-
15
- it "create a new Edge instance" do
16
- a = ArangoDocument.new(key: "myA", body: {"Hello" => "World"}).create
17
- b = ArangoDocument.new(key: "myB", body: {"Hello" => "World"}).create
18
- myEdgeDocument = ArangoDocument.new collection: "MyEdgeCollection", from: a, to: b
19
- expect(myEdgeDocument.body["_from"]).to eq a.id
20
- end
21
- end
22
-
23
- context "#create" do
24
- it "create a new Document" do
25
- @myDocument.destroy
26
- myDocument = @myDocument.create
27
- expect(myDocument.body["Hello"]).to eq "World"
28
- end
29
-
30
- it "create a duplicate Document" do
31
- myDocument = @myDocument.create
32
- expect(myDocument).to eq "cannot create document, unique constraint violated"
33
- end
34
-
35
- it "create a new Edge" do
36
- myDoc = @myCollection.create_document document: [{"A" => "B", "num" => 1}, {"C" => "D", "num" => 3}]
37
- myEdge = ArangoDocument.new collection: "MyEdgeCollection", from: myDoc[0].id, to: myDoc[1].id
38
- myEdge = myEdge.create
39
- expect(myEdge.body["_from"]).to eq myDoc[0].id
40
- end
41
- end
42
-
43
- context "#info" do
44
- it "retrieve Document" do
45
- myDocument = @myDocument.retrieve
46
- expect(myDocument.body["Hello"]).to eq "World"
47
- end
48
-
49
- it "retrieve Edges" do
50
- @myEdgeCollection.create_edge from: ["MyCollection/myA", "MyCollection/myB"], to: @myDocument
51
- myEdges = @myDocument.retrieve_edges(collection: @myEdgeCollection)
52
- expect(myEdges.length).to eq 2
53
- end
54
-
55
- it "going in different directions" do
56
- myDocument = @myDocument.in("MyEdgeCollection")[0].from.out(@myEdgeCollection)[0].to
57
- expect(myDocument.id).to eq @myDocument.id
58
- end
59
- end
60
-
61
- context "#modify" do
62
- it "replace" do
63
- myDocument = @myDocument.replace body: {"value" => 3}
64
- expect(myDocument.body["value"]).to eq 3
65
- end
66
-
67
- it "update" do
68
- myDocument = @myDocument.update body: {"time" => 13}
69
- expect(myDocument.body["value"]).to eq 3
70
- end
71
- end
72
-
73
- context "#destroy" do
74
- it "delete a Document" do
75
- result = @myDocument.destroy
76
- expect(result).to eq true
77
- end
78
- end
79
- end
@@ -1,50 +0,0 @@
1
- require_relative './../../spec_helper'
2
-
3
- describe ArangoEdge do
4
- context "#new" do
5
- it "create a new Edge instance" do
6
- a = ArangoVertex.new(key: "myA", body: {"Hello" => "World"}).create
7
- b = ArangoVertex.new(key: "myB", body: {"Hello" => "World"}).create
8
- myEdgeDocument = ArangoEdge.new collection: "MyEdgeCollection", from: a, to: b
9
- expect(myEdgeDocument.body["_from"]).to eq a.id
10
- end
11
- end
12
-
13
- context "#create" do
14
- it "create a new Edge" do
15
- myDoc = @myCollection.create_document document: [{"A" => "B", "num" => 1}, {"C" => "D", "num" => 3}]
16
- myEdge = ArangoEdge.new from: myDoc[0].id, to: myDoc[1].id, collection: "MyEdgeCollection"
17
- myEdge = myEdge.create
18
- expect(myEdge.body["_from"]).to eq myDoc[0].id
19
- end
20
- end
21
-
22
- context "#info" do
23
- it "retrieve Document" do
24
- myDocument = @myEdge.retrieve
25
- expect(myDocument.collection.name).to eq "MyEdgeCollection"
26
- end
27
- end
28
-
29
- context "#modify" do
30
- it "replace" do
31
- a = ArangoVertex.new(body: {"Hello" => "World"}).create
32
- b = ArangoVertex.new(body: {"Hello" => "World!!"}).create
33
- myDocument = @myEdge.replace body: {"_from" => a.id, "_to" => b.id}
34
- expect(myDocument.body["_from"]).to eq a.id
35
- end
36
-
37
- it "update" do
38
- cc = ArangoVertex.new(body: {"Hello" => "World!!!"}).create
39
- myDocument = @myEdge.update body: {"_to" => cc.id}
40
- expect(myDocument.body["_to"]).to eq cc.id
41
- end
42
- end
43
-
44
- context "#destroy" do
45
- it "delete a Document" do
46
- result = @myEdge.destroy
47
- expect(result).to eq true
48
- end
49
- end
50
- end
@@ -1,78 +0,0 @@
1
- require_relative './../../spec_helper'
2
-
3
- describe ArangoGraph do
4
- context "#new" do
5
- it "create a new Graph instance without global" do
6
- myGraph = ArangoGraph.new graph: "MyGraph", database: "MyDatabase"
7
- expect(myGraph.graph).to eq "MyGraph"
8
- end
9
-
10
- it "create a new instance with global" do
11
- myGraph = ArangoGraph.new
12
- expect(myGraph.graph).to eq "MyGraph"
13
- end
14
- end
15
-
16
- context "#create" do
17
- it "create new graph" do
18
- @myGraph.destroy
19
- myGraph = @myGraph.create
20
- expect(myGraph.graph).to eq "MyGraph"
21
- end
22
- end
23
-
24
- context "#info" do
25
- it "info graph" do
26
- myGraph = @myGraph.retrieve
27
- expect(myGraph.graph).to eq "MyGraph"
28
- end
29
- end
30
-
31
- context "#manageVertexCollections" do
32
- it "add VertexCollection" do
33
- @myGraph.removeEdgeCollection collection: "MyEdgeCollection"
34
- @myGraph.removeVertexCollection collection: "MyCollection"
35
- myGraph = @myGraph.addVertexCollection collection: "MyCollection"
36
- expect(myGraph.orphanCollections[0]).to eq "MyCollection"
37
- end
38
-
39
- it "retrieve VertexCollection" do
40
- myGraph = @myGraph.vertexCollections
41
- expect(myGraph[0].collection).to eq "MyCollection"
42
- end
43
-
44
- it "remove VertexCollection" do
45
- myGraph = @myGraph.removeVertexCollection collection: "MyCollection"
46
- expect(myGraph.orphanCollections[0]).to eq nil
47
- end
48
- end
49
-
50
- context "#manageEdgeCollections" do
51
- it "add EdgeCollection" do
52
- myGraph = @myGraph.addEdgeCollection collection: "MyEdgeCollection", from: "MyCollection", to: @myCollectionB
53
- expect(myGraph.edgeDefinitions[0]["from"][0]).to eq "MyCollection"
54
- end
55
-
56
- it "retrieve EdgeCollection" do
57
- myGraph = @myGraph.edgeCollections
58
- expect(myGraph[0].collection).to eq "MyEdgeCollection"
59
- end
60
-
61
- it "replace EdgeCollection" do
62
- myGraph = @myGraph.replaceEdgeCollection collection: @myEdgeCollection, from: "MyCollection", to: "MyCollection"
63
- expect(myGraph.edgeDefinitions[0]["to"][0]).to eq "MyCollection"
64
- end
65
-
66
- it "remove EdgeCollection" do
67
- myGraph = @myGraph.removeEdgeCollection collection: "MyEdgeCollection"
68
- expect(myGraph.edgeDefinitions[0]).to eq nil
69
- end
70
- end
71
-
72
- context "#destroy" do
73
- it "delete graph" do
74
- myGraph = @myGraph.destroy
75
- expect(myGraph).to be true
76
- end
77
- end
78
- end
@@ -1,37 +0,0 @@
1
- require_relative './../../spec_helper'
2
-
3
- describe ArangoServer do
4
- context "#database" do
5
- it "setup a global database" do
6
- ArangoServer.database = "MyDatabase"
7
- expect(ArangoServer.database.name).to eq "MyDatabase"
8
- end
9
- end
10
-
11
- context "#graph" do
12
- it "setup a global graph" do
13
- ArangoServer.graph = "MyGraph"
14
- expect(ArangoServer.graph.name).to eq "MyGraph"
15
- end
16
- end
17
-
18
- context "#collection" do
19
- it "setup a global collection" do
20
- ArangoServer.collection = "MyCollection"
21
- expect(ArangoServer.collection.name).to eq "MyCollection"
22
- end
23
- end
24
-
25
- context "#verbose" do
26
- it "try verbose" do
27
- ArangoServer.verbose = true
28
- result = ArangoCollection.new(collection: "Test").create
29
- expect(result.class).to be Hash
30
- end
31
-
32
- it "print verbose" do
33
- ArangoServer.verbose = true
34
- expect(ArangoServer.verbose).to be true
35
- end
36
- end
37
- end
@@ -1,48 +0,0 @@
1
- require_relative './../../spec_helper'
2
-
3
- describe ArangoTraversal do
4
- context "#new" do
5
- it "create a new Traversal instance" do
6
- myTraversal = ArangoTraversal.new
7
- expect(myTraversal.database.name).to eq "MyDatabase"
8
- end
9
-
10
- it "instantiate start Vertex" do
11
- @myTraversal.vertex = @myDoc[0]
12
- expect(@myTraversal.vertex.id).to eq "MyCollection/FirstKey"
13
- end
14
-
15
- it "instantiate Graph" do
16
- @myTraversal.graph = @myGraph
17
- expect(@myTraversal.graph.name).to eq @myGraph.graph
18
- end
19
-
20
- it "instantiate EdgeCollection" do
21
- @myTraversal.collection = @myEdgeCollection
22
- expect(@myTraversal.collection.name).to eq @myEdgeCollection.collection
23
- end
24
-
25
- it "instantiate Direction" do
26
- @myTraversal.in
27
- expect(@myTraversal.direction).to eq "inbound"
28
- end
29
-
30
- it "instantiate Max" do
31
- @myTraversal.max = 3
32
- expect(@myTraversal.max).to eq 3
33
- end
34
-
35
- it "instantiate Min" do
36
- @myTraversal.min = 1
37
- expect(@myTraversal.min).to eq 1
38
- end
39
- end
40
-
41
- context "#execute" do
42
- it "execute Traversal" do
43
- @myTraversal.any
44
- @myTraversal.execute
45
- expect(@myTraversal.vertices.length).to be >= 30
46
- end
47
- end
48
- end
@@ -1,65 +0,0 @@
1
- require_relative './../../spec_helper'
2
-
3
- describe ArangoVertex do
4
- context "#new" do
5
- it "create a new Document instance without global" do
6
- myVertex = ArangoVertex.new collection: "MyCollection", database: "MyDatabase", graph: "MyGraph"
7
- expect(myVertex.collection.name).to eq "MyCollection"
8
- end
9
-
10
- it "create a new instance with global" do
11
- myVertex = ArangoVertex.new key: "myKey", body: {"Hello" => "World"}
12
- expect(myVertex.key).to eq "myKey"
13
- end
14
- end
15
-
16
- context "#create" do
17
- it "create a new Document" do
18
- @myVertex.destroy
19
- myVertex = @myVertex.create
20
- expect(myVertex.body["Hello"]).to eq "World"
21
- end
22
-
23
- it "create a duplicate Document" do
24
- myVertex = @myVertex.create
25
- expect(myVertex).to eq "unique constraint violated"
26
- end
27
- end
28
-
29
- context "#info" do
30
- it "retrieve Document" do
31
- myVertex = @myVertex.retrieve
32
- expect(myVertex.body["Hello"]).to eq "World"
33
- end
34
-
35
- it "retrieve Edges" do
36
- @myEdgeCollection.create_edge from: ["MyCollection/myA", "MyCollection/myB"], to: @myVertex
37
- myEdges = @myVertex.retrieve_edges(collection: @myEdgeCollection)
38
- expect(myEdges.length).to eq 2
39
- end
40
-
41
- # it "going in different directions" do
42
- # myVertex = @myVertex.in("MyEdgeCollection")[0].from.out(@myEdgeCollection)[0].to
43
- # expect(myVertex.id).to eq @myVertex.id
44
- # end
45
- end
46
-
47
- context "#modify" do
48
- it "replace" do
49
- myVertex = @myVertex.replace body: {"value" => 3}
50
- expect(myVertex.body["value"]).to eq 3
51
- end
52
-
53
- it "update" do
54
- myVertex = @myVertex.update body: {"time" => 13}
55
- expect(myVertex.body["value"]).to eq 3
56
- end
57
- end
58
-
59
- context "#destroy" do
60
- it "delete a Document" do
61
- result = @myVertex.destroy
62
- expect(result).to eq true
63
- end
64
- end
65
- end
@@ -1,73 +0,0 @@
1
- require_relative './../../spec_helper'
2
-
3
- describe ArangoCollection do
4
- context "#get" do
5
- it "revision" do
6
- expect(@myCollection.revision.class).to be String
7
- end
8
-
9
- it "collection" do
10
- expect(@myCollection.rotate).to eq "could not rotate journal: no journal"
11
- end
12
- end
13
-
14
- context "#import" do
15
- it "import" do
16
- attributes = ["value", "num", "name"]
17
- values = [["uno",1,"ONE"],["due",2,"TWO"],["tre",3,"THREE"]]
18
- result = @myCollection.import attributes: attributes, values: values
19
- expect(result["created"]).to eq 3
20
- end
21
-
22
- it "import single" do
23
- attributes = ["value", "num", "name"]
24
- values = ["uno",1,"ONE"]
25
- result = @myCollection.import attributes: attributes, values: values
26
- expect(result["created"]).to eq 1
27
- end
28
-
29
- it "importJSON" do
30
- body = [{"value": "uno", "num": 1, "name": "ONE"}, {"value": "due", "num": 2, "name": "DUE"}]
31
- result = @myCollection.importJSON body: body
32
- expect(result["created"]).to eq 2
33
- end
34
- end
35
-
36
- context "#export" do
37
- it "export" do
38
- result = @myCollection.export flush: true
39
- expect(result[0].class).to be ArangoDocument
40
- end
41
-
42
- it "exportNext" do
43
- result = @myCollection.export batchSize: 3, flush: true
44
- result = @myCollection.exportNext
45
- expect(result[0].class).to be ArangoDocument
46
- end
47
- end
48
-
49
- context "#indexes" do
50
- it "indexes" do
51
- expect(@myCollection.indexes["indexes"][0].class).to be ArangoIndex
52
- end
53
- #
54
- # it "retrieve" do
55
- # expect((@myCollection.retrieveIndex id: 0).unique).to be true
56
- # end
57
- #
58
- it "create" do
59
- myIndex = @myCollection.createIndex unique: false, fields: "num", type: "hash"
60
- expect(myIndex.fields).to eq ["num"]
61
- end
62
- #
63
- # it "delete" do
64
- # expect(@myCollection.deleteIndex id: @myIndex.key).to eq true
65
- # end
66
- end
67
-
68
- context "#replication" do
69
- it "data" do
70
- expect(@myCollection.data.length).to be > 100
71
- end
72
- end
73
- end
@@ -1,48 +0,0 @@
1
- require_relative './../../spec_helper'
2
-
3
- describe ArangoDatabase do
4
- context "#replication" do
5
- it "inventory" do
6
- expect(@myDatabase.inventory["collections"].class).to be Array
7
- end
8
-
9
- it "clusterInventory" do
10
- expect(@myDatabase.clusterInventory).to eq "this operation is only valid on a coordinator in a cluster"
11
- end
12
-
13
- # it "logger" do
14
- # expect(@myDatabase.logger["state"]["running"]).to be true
15
- # end
16
-
17
- # it "lastLogger" do
18
- # expect(@myDatabase.loggerFollow.class).to be String
19
- # end
20
-
21
- # it "fistTick" do
22
- # expect(@myDatabase.firstTick.to_i).to be >= 1
23
- # end
24
-
25
- # it "rangeTick" do
26
- # expect(@myDatabase.rangeTick[0]["datafile"].class).to be String
27
- # end
28
-
29
- # it "configurationReplication" do
30
- # expect(@myDatabase.configurationReplication["requestTimeout"]).to eq 600
31
- # end
32
-
33
- # it "modifyConfigurationReplication" do
34
- # result = @myDatabase.modifyConfigurationReplication autoStart: true
35
- # expect(result["autoStart"]).to be true
36
- # end
37
- end
38
-
39
- context "#user" do
40
- it "grant" do
41
- expect(@myDatabase.grant user: @myUser).to be true
42
- end
43
-
44
- it "revoke" do
45
- expect(@myDatabase.revoke user: @myUser).to be true
46
- end
47
- end
48
- end