arangorb 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/ArangoRB.gemspec +18 -18
  3. data/Gemfile +8 -7
  4. data/LICENSE +21 -21
  5. data/README.md +906 -867
  6. data/lib/ArangoRB_AQL.rb +181 -160
  7. data/lib/ArangoRB_Cache.rb +174 -174
  8. data/lib/ArangoRB_Col.rb +526 -499
  9. data/lib/ArangoRB_DB.rb +363 -339
  10. data/lib/ArangoRB_Doc.rb +319 -298
  11. data/lib/ArangoRB_Edg.rb +184 -169
  12. data/lib/ArangoRB_Gra.rb +201 -180
  13. data/lib/ArangoRB_Index.rb +135 -115
  14. data/lib/ArangoRB_Replication.rb +261 -0
  15. data/lib/ArangoRB_Ser.rb +446 -441
  16. data/lib/ArangoRB_Task.rb +129 -113
  17. data/lib/ArangoRB_Tra.rb +169 -142
  18. data/lib/ArangoRB_Tran.rb +68 -53
  19. data/lib/ArangoRB_User.rb +149 -136
  20. data/lib/ArangoRB_Ver.rb +162 -147
  21. data/lib/arangorb.rb +16 -15
  22. data/spec/arangoRB_helper.rb +4 -4
  23. data/spec/arangoRestart_helper.rb +14 -14
  24. data/spec/lib/0.1.0/arangoAQL_helper.rb +64 -64
  25. data/spec/lib/0.1.0/arangoC_helper.rb +170 -170
  26. data/spec/lib/0.1.0/arangoDB_helper.rb +119 -119
  27. data/spec/lib/0.1.0/arangoDoc_helper.rb +79 -79
  28. data/spec/lib/0.1.0/arangoE_helper.rb +50 -50
  29. data/spec/lib/0.1.0/arangoG_helper.rb +78 -78
  30. data/spec/lib/0.1.0/arangoS_helper.rb +37 -37
  31. data/spec/lib/0.1.0/arangoT_helper.rb +48 -48
  32. data/spec/lib/0.1.0/arangoV_helper.rb +65 -65
  33. data/spec/lib/1.0.0/arangoC_helper.rb +73 -73
  34. data/spec/lib/1.0.0/arangoDB_helper.rb +48 -48
  35. data/spec/lib/1.0.0/arangoI_helper.rb +43 -43
  36. data/spec/lib/1.0.0/arangoS_helper.rb +192 -192
  37. data/spec/lib/1.0.0/arangoTa_helper.rb +49 -49
  38. data/spec/lib/1.0.0/arangoTr_helper.rb +15 -15
  39. data/spec/lib/1.0.0/arangoU_helper.rb +72 -72
  40. data/spec/lib/1.1.0/arangoRB_helper.rb +144 -144
  41. data/spec/lib/1.1.0/arangoRB_walks_helper.rb +19 -19
  42. data/spec/lib/1.2.0/arangoCache_helper.rb +66 -66
  43. data/spec/lib/1.3.0/arangoHash_helper.rb +30 -0
  44. data/spec/lib/arangoRB_0.1.0_helper.rb +9 -9
  45. data/spec/lib/arangoRB_1.0.0_helper.rb +6 -6
  46. data/spec/lib/arangoRB_1.1.0_helper.rb +2 -2
  47. data/spec/lib/arangoRB_1.2.0_helper.rb +2 -1
  48. data/spec/spec_helper.rb +41 -41
  49. metadata +6 -5
@@ -1,19 +1,19 @@
1
- require_relative './../../spec_helper'
2
-
3
- describe ArangoDatabase do
4
- context "#retrieve" do
5
- it "walk" do
6
- print "\n"
7
- print "#{@myDatabase.name}\n"
8
- print "#{@myDatabase['MyCollection'].name}\n"
9
- print "#{@myDatabase['MyCollection'].documents.map{|x| x.name}}\n"
10
- print "#{@myDatabase['MyCollection']["FirstKey"].name}\n"
11
- print "#{@myDatabase['MyCollection'][@myDatabase['MyCollection']["FirstKey"]].name}\n"
12
- print "#{@myDatabase['MyCollection']["FirstKey"].out("MyEdgeCollection").map{|x| x.name}}\n"
13
- print "#{@myDatabase['MyCollection']["FirstKey"].out("MyEdgeCollection")[0].to.body["num"]}\n"
14
- print "#{@myDatabase['MyCollection']["FirstKey"].out("MyEdgeCollection")[0].to.database.name}\n"
15
- print "#{@myDatabase['MyCollection']["FirstKey"].out("MyEdgeCollection")[0].to.database['MyCollection']["FirstKey"].out("MyEdgeCollection")[0].to.body["num"]}\n"
16
- expect(@myDatabase['MyCollection']["FirstKey"].out("MyEdgeCollection")[0].to.database['MyCollection']["FirstKey"].out("MyEdgeCollection")[0].to.body["num"]).to eq 1
17
- end
18
- end
19
- end
1
+ require_relative './../../spec_helper'
2
+
3
+ describe ArangoDatabase do
4
+ context "#retrieve" do
5
+ it "walk" do
6
+ print "\n"
7
+ print "#{@myDatabase.name}\n"
8
+ print "#{@myDatabase['MyCollection'].name}\n"
9
+ print "#{@myDatabase['MyCollection'].documents.map{|x| x.name}}\n"
10
+ print "#{@myDatabase['MyCollection']["FirstKey"].name}\n"
11
+ print "#{@myDatabase['MyCollection'][@myDatabase['MyCollection']["FirstKey"]].name}\n"
12
+ print "#{@myDatabase['MyCollection']["FirstKey"].out("MyEdgeCollection").map{|x| x.name}}\n"
13
+ print "#{@myDatabase['MyCollection']["FirstKey"].out("MyEdgeCollection")[0].to.body["num"]}\n"
14
+ print "#{@myDatabase['MyCollection']["FirstKey"].out("MyEdgeCollection")[0].to.database.name}\n"
15
+ print "#{@myDatabase['MyCollection']["FirstKey"].out("MyEdgeCollection")[0].to.database['MyCollection']["FirstKey"].out("MyEdgeCollection")[0].to.body["num"]}\n"
16
+ expect(@myDatabase['MyCollection']["FirstKey"].out("MyEdgeCollection")[0].to.database['MyCollection']["FirstKey"].out("MyEdgeCollection")[0].to.body["num"]).to eq 1
17
+ end
18
+ end
19
+ end
@@ -1,66 +1,66 @@
1
- require_relative './../../spec_helper'
2
-
3
- describe ArangoCache do
4
- context "#cache" do
5
- it "cache" do
6
- @myDatabase.retrieve
7
- @myCollection.retrieve
8
- @myEdgeCollection.retrieve
9
- @myGraph.retrieve
10
- @myAQL.execute
11
- @myVertex.retrieve
12
- @myEdge.retrieve
13
- @myIndex.retrieve
14
- @myUser.retrieve
15
- @myTask.retrieve
16
- val = ArangoCache.cache data: [@myDatabase, @myCollection, @myEdgeCollection, @myGraph, @myAQL, @myVertex, @myEdge, @myIndex, @myUser, @myTask, [1,2,3]]
17
- expect(val.length).to eq 11
18
- end
19
-
20
- it "cache with ID" do
21
- myAQL2 = ArangoAQL.new query: "FOR u IN MyCollection RETURN u"
22
- myAQL2.execute
23
- ArangoCache.cache id: "myAQL", data: myAQL2
24
- val = ArangoCache.uncache type: "AQL", id: "myAQL"
25
- expect(val.result.length).to be > 0
26
- end
27
-
28
- it "uncache" do
29
- val = ArangoCache.uncache data: [@myCollection, @myVertex]
30
- val = val.map{|v| v.class.to_s}
31
- expect(val).to eq ["ArangoCollection", "ArangoVertex"]
32
- end
33
- end
34
-
35
- context "#limits" do
36
- it "max" do
37
- ArangoCache.cache data: @myDoc
38
- val = ArangoCache.retrieve["Document"]
39
- ArangoCache.max type: "Document", val: 5
40
- ArangoCache.retrieve["Document"]
41
- ArangoCache.cache data: @myDoc[0]
42
- val = ArangoCache.uncache type: "Document"
43
- expect(val.length).to eq 5
44
- end
45
- end
46
-
47
- context "#clear" do
48
- it "clear object" do
49
- ArangoCache.clear data: @myCollection
50
- val = ArangoCache.uncache data: @myCollection
51
- expect(val.nil?).to be true
52
- end
53
-
54
- it "clear type" do
55
- ArangoCache.clear type: "Vertex"
56
- val = ArangoCache.retrieve
57
- expect(val["Vertex"].empty?).to be true
58
- end
59
-
60
- it "clear type" do
61
- ArangoCache.clear
62
- val = ArangoCache.retrieve
63
- expect(val["Database"].empty?).to be true
64
- end
65
- end
66
- end
1
+ require_relative './../../spec_helper'
2
+
3
+ describe ArangoCache do
4
+ context "#cache" do
5
+ it "cache" do
6
+ @myDatabase.retrieve
7
+ @myCollection.retrieve
8
+ @myEdgeCollection.retrieve
9
+ @myGraph.retrieve
10
+ @myAQL.execute
11
+ @myVertex.retrieve
12
+ @myEdge.retrieve
13
+ @myIndex.retrieve
14
+ @myUser.retrieve
15
+ @myTask.retrieve
16
+ val = ArangoCache.cache data: [@myDatabase, @myCollection, @myEdgeCollection, @myGraph, @myAQL, @myVertex, @myEdge, @myIndex, @myUser, @myTask, [1,2,3]]
17
+ expect(val.length).to eq 11
18
+ end
19
+
20
+ it "cache with ID" do
21
+ myAQL2 = ArangoAQL.new query: "FOR u IN MyCollection RETURN u"
22
+ myAQL2.execute
23
+ ArangoCache.cache id: "myAQL", data: myAQL2
24
+ val = ArangoCache.uncache type: "AQL", id: "myAQL"
25
+ expect(val.result.length).to be > 0
26
+ end
27
+
28
+ it "uncache" do
29
+ val = ArangoCache.uncache data: [@myCollection, @myVertex]
30
+ val = val.map{|v| v.class.to_s}
31
+ expect(val).to eq ["ArangoCollection", "ArangoVertex"]
32
+ end
33
+ end
34
+
35
+ context "#limits" do
36
+ it "max" do
37
+ ArangoCache.cache data: @myDoc
38
+ val = ArangoCache.retrieve["Document"]
39
+ ArangoCache.max type: "Document", val: 5
40
+ ArangoCache.retrieve["Document"]
41
+ ArangoCache.cache data: @myDoc[0]
42
+ val = ArangoCache.uncache type: "Document"
43
+ expect(val.length).to eq 5
44
+ end
45
+ end
46
+
47
+ context "#clear" do
48
+ it "clear object" do
49
+ ArangoCache.clear data: @myCollection
50
+ val = ArangoCache.uncache data: @myCollection
51
+ expect(val.nil?).to be true
52
+ end
53
+
54
+ it "clear type" do
55
+ ArangoCache.clear type: "Vertex"
56
+ val = ArangoCache.retrieve
57
+ expect(val["Vertex"].empty?).to be true
58
+ end
59
+
60
+ it "clear type" do
61
+ ArangoCache.clear
62
+ val = ArangoCache.retrieve
63
+ expect(val["Database"].empty?).to be true
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,30 @@
1
+ require_relative './../../spec_helper'
2
+
3
+ describe "ArangoHash" do
4
+ context "#hash" do
5
+ it "hash" do
6
+ @myDatabase.retrieve
7
+ @myCollection.retrieve
8
+ @myEdgeCollection.retrieve
9
+ @myGraph.retrieve
10
+ @myAQL.execute
11
+ @myVertex.retrieve
12
+ @myEdge.retrieve
13
+ @myIndex.retrieve
14
+ @myUser.retrieve
15
+ @myTask.retrieve
16
+
17
+ print "#{@myDatabase.to_h}\n"
18
+ print "#{@myCollection.to_h}\n"
19
+ print "#{@myEdgeCollection.to_h}\n"
20
+ print "#{@myGraph.to_h}\n"
21
+ print "#{@myAQL.to_h}\n"
22
+ print "#{@myVertex.to_h}\n"
23
+ print "#{@myEdge.to_h}\n"
24
+ print "#{@myIndex.to_h}\n"
25
+ print "#{@myUser.to_h}\n"
26
+ print "#{@myTask.to_h}\n"
27
+ expect(@myTask.to_hash.class).to be Hash
28
+ end
29
+ end
30
+ end
@@ -1,9 +1,9 @@
1
- require "lib/0.1.0/arangoS_helper"
2
- require "lib/0.1.0/arangoDB_helper"
3
- require "lib/0.1.0/arangoC_helper"
4
- require "lib/0.1.0/arangoDoc_helper"
5
- require "lib/0.1.0/arangoG_helper"
6
- require "lib/0.1.0/arangoV_helper"
7
- require "lib/0.1.0/arangoE_helper"
8
- require "lib/0.1.0/arangoT_helper"
9
- require "lib/0.1.0/arangoAQL_helper"
1
+ require "lib/0.1.0/arangoS_helper"
2
+ require "lib/0.1.0/arangoDB_helper"
3
+ require "lib/0.1.0/arangoC_helper"
4
+ require "lib/0.1.0/arangoDoc_helper"
5
+ require "lib/0.1.0/arangoG_helper"
6
+ require "lib/0.1.0/arangoV_helper"
7
+ require "lib/0.1.0/arangoE_helper"
8
+ require "lib/0.1.0/arangoT_helper"
9
+ require "lib/0.1.0/arangoAQL_helper"
@@ -1,6 +1,6 @@
1
- require "lib/1.0.0/arangoS_helper"
2
- require "lib/1.0.0/arangoDB_helper"
3
- require "lib/1.0.0/arangoC_helper"
4
- require "lib/1.0.0/arangoU_helper"
5
- require "lib/1.0.0/arangoTr_helper"
6
- require "lib/1.0.0/arangoTa_helper"
1
+ require "lib/1.0.0/arangoS_helper"
2
+ require "lib/1.0.0/arangoDB_helper"
3
+ require "lib/1.0.0/arangoC_helper"
4
+ require "lib/1.0.0/arangoU_helper"
5
+ require "lib/1.0.0/arangoTr_helper"
6
+ require "lib/1.0.0/arangoTa_helper"
@@ -1,2 +1,2 @@
1
- require "lib/1.1.0/arangoRB_helper"
2
- require "lib/1.1.0/arangoRB_walks_helper"
1
+ require "lib/1.1.0/arangoRB_helper"
2
+ require "lib/1.1.0/arangoRB_walks_helper"
@@ -1 +1,2 @@
1
- require "lib/1.2.0/arangoCache_helper"
1
+ require "lib/1.2.0/arangoCache_helper"
2
+ require "lib/1.3.0/arangoHash_helper"
@@ -1,41 +1,41 @@
1
- require "rspec"
2
- require_relative File.expand_path('../../lib/arangorb', __FILE__)
3
-
4
- RSpec.configure do |config|
5
- config.color = true
6
- config.before(:all) do
7
- ArangoServer.default_server user: "root", password: "", server: "localhost", port: "8529"
8
- ArangoServer.database = "MyDatabase"
9
- ArangoServer.collection = "MyCollection"
10
- ArangoServer.graph = "MyGraph"
11
- ArangoServer.user = "MyUser"
12
- ArangoServer.verbose = false
13
- ArangoServer.async = false
14
- @myDatabase = ArangoDatabase.new.create
15
- @myGraph = ArangoGraph.new.create
16
- @myCollection = ArangoCollection.new.create
17
- @myCollectionB = ArangoCollection.new(collection: "MyCollectionB").create
18
- @myDocument = ArangoDocument.new(body: {"Hello" => "World", "num" => 1}, key: "FirstDocument").create
19
- @myEdgeCollection = ArangoCollection.new(collection: "MyEdgeCollection").create_edge_collection
20
- @myGraph.addVertexCollection collection: "MyCollection"
21
- @myGraph.addEdgeCollection collection: "MyEdgeCollection", from: "MyCollection", to: "MyCollection"
22
- @myAQL = ArangoAQL.new query: "FOR u IN MyCollection RETURN u.num"
23
- @myDoc = @myCollection.create_document document: [{"num" => 1, "_key" => "FirstKey"}, {"num" => 1}, {"num" => 1}, {"num" => 1}, {"num" => 1}, {"num" => 1}, {"num" => 1}, {"num" => 2}, {"num" => 2}, {"num" => 2}, {"num" => 3}, {"num" => 2}, {"num" => 5}, {"num" => 2}]
24
- @myEdgeCollection.create_edge from: [@myDoc[0].id, @myDoc[1].id, @myDoc[2].id, @myDoc[3].id, @myDoc[7].id], to: [@myDoc[4].id, @myDoc[5].id, @myDoc[6].id, @myDoc[8].id]
25
- @myVertex = ArangoVertex.new(body: {"Hello" => "World", "num" => 1}, key: "FirstVertex").create
26
- @vertexA = ArangoVertex.new(body: {"Hello" => "World", "num" => 1}).create
27
- @vertexB = ArangoVertex.new(body: {"Hello" => "Moon", "num" => 2}).create
28
- @myEdge = ArangoEdge.new(from: @vertexA, to: @vertexB, collection: "MyEdgeCollection").create
29
- @myIndex = @myCollection.createIndex unique: false, fields: "num", type: "hash", id: "MyIndex"
30
- @myTraversal = ArangoTraversal.new
31
- @myUser = ArangoUser.new.create
32
- @myTask = ArangoTask.new id: "mytaskid", name: "MyTaskID", command: "(function(params) { require('@arangodb').print(params); })(params)", params: {"foo" => "bar", "bar" => "foo"}, period: 60
33
- end
34
-
35
- config.after(:all) do
36
- ArangoDatabase.new.destroy
37
- ArangoUser.new.destroy
38
- @myUser.destroy unless @myUser.nil?
39
- @myIndex.destroy unless @myIndex.nil?
40
- end
41
- end
1
+ require "rspec"
2
+ require_relative File.expand_path('../../lib/arangorb', __FILE__)
3
+
4
+ RSpec.configure do |config|
5
+ config.color = true
6
+ config.before(:all) do
7
+ ArangoServer.default_server user: "root", password: "tretretre", server: "localhost", port: "8529"
8
+ ArangoServer.database = "MyDatabase"
9
+ ArangoServer.collection = "MyCollection"
10
+ ArangoServer.graph = "MyGraph"
11
+ ArangoServer.user = "MyUser"
12
+ ArangoServer.verbose = false
13
+ ArangoServer.async = false
14
+ @myDatabase = ArangoDatabase.new.create
15
+ @myGraph = ArangoGraph.new.create
16
+ @myCollection = ArangoCollection.new.create
17
+ @myCollectionB = ArangoCollection.new(collection: "MyCollectionB").create
18
+ @myDocument = ArangoDocument.new(body: {"Hello" => "World", "num" => 1}, key: "FirstDocument").create
19
+ @myEdgeCollection = ArangoCollection.new(collection: "MyEdgeCollection").create_edge_collection
20
+ @myGraph.addVertexCollection collection: "MyCollection"
21
+ @myGraph.addEdgeCollection collection: "MyEdgeCollection", from: "MyCollection", to: "MyCollection"
22
+ @myAQL = ArangoAQL.new query: "FOR u IN MyCollection RETURN u.num"
23
+ @myDoc = @myCollection.create_document document: [{"num" => 1, "_key" => "FirstKey"}, {"num" => 1}, {"num" => 1}, {"num" => 1}, {"num" => 1}, {"num" => 1}, {"num" => 1}, {"num" => 2}, {"num" => 2}, {"num" => 2}, {"num" => 3}, {"num" => 2}, {"num" => 5}, {"num" => 2}]
24
+ @myEdgeCollection.create_edge from: [@myDoc[0].id, @myDoc[1].id, @myDoc[2].id, @myDoc[3].id, @myDoc[7].id], to: [@myDoc[4].id, @myDoc[5].id, @myDoc[6].id, @myDoc[8].id]
25
+ @myVertex = ArangoVertex.new(body: {"Hello" => "World", "num" => 1}, key: "FirstVertex").create
26
+ @vertexA = ArangoVertex.new(body: {"Hello" => "World", "num" => 1}).create
27
+ @vertexB = ArangoVertex.new(body: {"Hello" => "Moon", "num" => 2}).create
28
+ @myEdge = ArangoEdge.new(from: @vertexA, to: @vertexB, collection: "MyEdgeCollection").create
29
+ @myIndex = @myCollection.createIndex unique: false, fields: "num", type: "hash", id: "MyIndex"
30
+ @myTraversal = ArangoTraversal.new
31
+ @myUser = ArangoUser.new.create
32
+ @myTask = ArangoTask.new id: "mytaskid", name: "MyTaskID", command: "(function(params) { require('@arangodb').print(params); })(params)", params: {"foo" => "bar", "bar" => "foo"}, period: 60
33
+ end
34
+
35
+ config.after(:all) do
36
+ ArangoDatabase.new.destroy
37
+ ArangoUser.new.destroy
38
+ @myUser.destroy unless @myUser.nil?
39
+ @myIndex.destroy unless @myIndex.nil?
40
+ end
41
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arangorb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefano Martin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-09 00:00:00.000000000 Z
11
+ date: 2017-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -30,8 +30,7 @@ dependencies:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 0.14.0
33
- description: ArangoRB is an experimental Ruby gems based on ArangoDB's HTTP API. ArangoDB
34
- is a powerful mixed database based on documents and graphs
33
+ description: Ruby driver for ArangoDB's HTTP API
35
34
  email:
36
35
  - stefano@seluxit.com
37
36
  executables: []
@@ -50,6 +49,7 @@ files:
50
49
  - lib/ArangoRB_Edg.rb
51
50
  - lib/ArangoRB_Gra.rb
52
51
  - lib/ArangoRB_Index.rb
52
+ - lib/ArangoRB_Replication.rb
53
53
  - lib/ArangoRB_Ser.rb
54
54
  - lib/ArangoRB_Task.rb
55
55
  - lib/ArangoRB_Tra.rb
@@ -78,6 +78,7 @@ files:
78
78
  - spec/lib/1.1.0/arangoRB_helper.rb
79
79
  - spec/lib/1.1.0/arangoRB_walks_helper.rb
80
80
  - spec/lib/1.2.0/arangoCache_helper.rb
81
+ - spec/lib/1.3.0/arangoHash_helper.rb
81
82
  - spec/lib/arangoRB_0.1.0_helper.rb
82
83
  - spec/lib/arangoRB_1.0.0_helper.rb
83
84
  - spec/lib/arangoRB_1.1.0_helper.rb
@@ -103,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
104
  version: '0'
104
105
  requirements: []
105
106
  rubyforge_project:
106
- rubygems_version: 2.5.1
107
+ rubygems_version: 2.5.2
107
108
  signing_key:
108
109
  specification_version: 4
109
110
  summary: A simple ruby client for ArangoDB