arangorb 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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