arangorb 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/ArangoRB.gemspec +2 -2
  3. data/README.md +418 -123
  4. data/lib/ArangoRB_AQL.rb +90 -103
  5. data/lib/ArangoRB_Col.rb +476 -159
  6. data/lib/ArangoRB_DB.rb +305 -79
  7. data/lib/ArangoRB_Doc.rb +112 -114
  8. data/lib/ArangoRB_Edg.rb +81 -62
  9. data/lib/ArangoRB_Gra.rb +125 -76
  10. data/lib/ArangoRB_Index.rb +144 -0
  11. data/lib/ArangoRB_Ser.rb +439 -18
  12. data/lib/ArangoRB_Task.rb +136 -0
  13. data/lib/ArangoRB_Tra.rb +47 -42
  14. data/lib/ArangoRB_Tran.rb +48 -0
  15. data/lib/ArangoRB_User.rb +152 -0
  16. data/lib/ArangoRB_Ver.rb +74 -57
  17. data/lib/arangorb.rb +4 -0
  18. data/spec/arangoRB_helper.rb +2 -9
  19. data/spec/arangoRestart_helper.rb +14 -0
  20. data/spec/lib/{arangoAQL_helper.rb → 0.1.0/arangoAQL_helper.rb} +2 -21
  21. data/spec/lib/{arangoC_helper.rb → 0.1.0/arangoC_helper.rb} +40 -19
  22. data/spec/lib/{arangoDB_helper.rb → 0.1.0/arangoDB_helper.rb} +13 -13
  23. data/spec/lib/{arangoDoc_helper.rb → 0.1.0/arangoDoc_helper.rb} +10 -23
  24. data/spec/lib/0.1.0/arangoE_helper.rb +50 -0
  25. data/spec/lib/{arangoG_helper.rb → 0.1.0/arangoG_helper.rb} +7 -21
  26. data/spec/lib/0.1.0/arangoS_helper.rb +37 -0
  27. data/spec/lib/0.1.0/arangoT_helper.rb +48 -0
  28. data/spec/lib/{arangoV_helper.rb → 0.1.0/arangoV_helper.rb} +6 -22
  29. data/spec/lib/1.0.0/arangoC_helper.rb +73 -0
  30. data/spec/lib/1.0.0/arangoDB_helper.rb +81 -0
  31. data/spec/lib/1.0.0/arangoI_helper.rb +43 -0
  32. data/spec/lib/1.0.0/arangoS_helper.rb +196 -0
  33. data/spec/lib/1.0.0/arangoTa_helper.rb +49 -0
  34. data/spec/lib/1.0.0/arangoTr_helper.rb +15 -0
  35. data/spec/lib/1.0.0/arangoU_helper.rb +72 -0
  36. data/spec/lib/arangoRB_0.1.0_helper.rb +9 -0
  37. data/spec/lib/arangoRB_1.0.0_helper.rb +6 -0
  38. data/spec/spec_helper.rb +34 -0
  39. metadata +28 -15
  40. data/spec/lib/arangoE_helper.rb +0 -70
  41. data/spec/lib/arangoS_helper.rb +0 -28
  42. data/spec/lib/arangoT_helper.rb +0 -67
data/lib/ArangoRB_Tra.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # === TRAVERSAL ===
2
2
 
3
- class ArangoT < ArangoS
4
- def initialize(body: {}, database: @@database, graph: nil, edgeCollection: nil)
3
+ class ArangoTraversal < ArangoServer
4
+ def initialize(body: {}, database: @@database, graph: nil, edgeCollection: nil) # TESTED
5
5
  @sort = body["sort"]
6
6
  @direction = body["direction"]
7
7
  @maxDepth = body["maxDepth"]
@@ -26,45 +26,45 @@ class ArangoT < ArangoS
26
26
  attr_accessor :sort, :direction, :maxDepth, :minDepth, :visitor, :itemOrder, :strategy, :filter, :init, :maxiterations, :uniqueness, :order, :expander, :vertices, :paths, :database
27
27
  attr_reader :startVertex, :graphName, :edgeCollection
28
28
 
29
- def startVertex=(startVertex)
29
+ def startVertex=(startVertex) # TESTED
30
30
  if startVertex.is_a?(String)
31
31
  @startVertex = startVertex
32
- elsif startVertex.is_a?(ArangoDoc)
32
+ elsif startVertex.is_a?(ArangoDocument)
33
33
  @startVertex = startVertex.id
34
34
  else
35
- raise "startVertex should be a String or an ArangoDoc instance, not a #{startVertex.class}"
35
+ raise "startVertex should be a String or an ArangoDocument instance, not a #{startVertex.class}"
36
36
  end
37
37
  end
38
38
 
39
- def graphName=(graphName)
39
+ def graphName=(graphName) # TESTED
40
40
  if graphName.is_a?(String) || graphName.nil?
41
41
  @graphName = graphName
42
- elsif graphName.is_a?(ArangoG)
42
+ elsif graphName.is_a?(ArangoGraph)
43
43
  @graphName = graphName.graph
44
44
  else
45
- raise "graphName should be a String or an ArangoG instance, not a #{graphName.class}"
45
+ raise "graphName should be a String or an ArangoGraph instance, not a #{graphName.class}"
46
46
  end
47
47
  end
48
48
 
49
- def edgeCollection=(edgeCollection)
49
+ def edgeCollection=(edgeCollection) # TESTED
50
50
  if edgeCollection.is_a?(String) || edgeCollection.nil?
51
51
  @edgeCollection = edgeCollection
52
- elsif edgeCollection.is_a?(ArangoC)
52
+ elsif edgeCollection.is_a?(ArangoCollection)
53
53
  @edgeCollection = edgeCollection.collection
54
54
  else
55
- raise "edgeCollection should be a String or an ArangoC instance, not a #{edgeCollection.class}"
55
+ raise "edgeCollection should be a String or an ArangoCollection instance, not a #{edgeCollection.class}"
56
56
  end
57
57
  end
58
58
 
59
- def in
59
+ def in # TESTED
60
60
  @direction = "inbound"
61
61
  end
62
62
 
63
- def out
63
+ def out # TESTED
64
64
  @direction = "outbound"
65
65
  end
66
66
 
67
- def any
67
+ def any # TESTED
68
68
  @direction = "any"
69
69
  end
70
70
 
@@ -79,7 +79,7 @@ class ArangoT < ArangoS
79
79
  alias graph graphName
80
80
  alias graph= graphName=
81
81
 
82
- def execute
82
+ def execute # TESTED
83
83
  body = {
84
84
  "sort" => @sort,
85
85
  "direction" => @direction,
@@ -98,35 +98,40 @@ class ArangoT < ArangoS
98
98
  "expander" => @expander,
99
99
  "edgeCollection" => @edgeCollection
100
100
  }.delete_if{|k,v| v.nil?}
101
- new_Document = { :body => body.to_json }
102
- result = self.class.post("/_db/#{@database}/_api/traversal", new_Document).parsed_response
103
- if result["error"]
104
- return @@verbose ? result : result["errorMessage"]
101
+ request = @@request.merge({ :body => body.to_json })
102
+ result = self.class.post("/_db/#{@database}/_api/traversal", request)
103
+ if @@async == "store"
104
+ result.headers["x-arango-async-id"]
105
105
  else
106
- @vertices = result["result"]["visited"]["vertices"].map{|x| ArangoDoc.new(
107
- key: x["_key"],
108
- collection: x["_id"].split("/")[0],
109
- database: @database,
110
- body: x
111
- )}
112
- @paths = result["result"]["visited"]["paths"].map{|x|
113
- { "edges" => x["edges"].map{|e| ArangoDoc.new(
114
- key: e["_key"],
115
- collection: e["_id"].split("/")[0],
116
- database: @database,
117
- body: e,
118
- from: e["_from"],
119
- to: e["_to"]
120
- )},
121
- "vertices" => x["vertices"].map{|v| ArangoDoc.new(
122
- key: v["_key"],
123
- collection: v["_id"].split("/")[0],
124
- database: @database,
125
- body: v
126
- )}
106
+ result = result.parsed_response
107
+ if result["error"]
108
+ return @@verbose ? result : result["errorMessage"]
109
+ else
110
+ @vertices = result["result"]["visited"]["vertices"].map{|x| ArangoDocument.new(
111
+ key: x["_key"],
112
+ collection: x["_id"].split("/")[0],
113
+ database: @database,
114
+ body: x
115
+ )}
116
+ @paths = result["result"]["visited"]["paths"].map{|x|
117
+ { "edges" => x["edges"].map{|e| ArangoDocument.new(
118
+ key: e["_key"],
119
+ collection: e["_id"].split("/")[0],
120
+ database: @database,
121
+ body: e,
122
+ from: e["_from"],
123
+ to: e["_to"]
124
+ )},
125
+ "vertices" => x["vertices"].map{|v| ArangoDocument.new(
126
+ key: v["_key"],
127
+ collection: v["_id"].split("/")[0],
128
+ database: @database,
129
+ body: v
130
+ )}
131
+ }
127
132
  }
128
- }
129
- return @@verbose ? result : self
133
+ return @@verbose ? result : self
134
+ end
130
135
  end
131
136
  end
132
137
  end
@@ -0,0 +1,48 @@
1
+ # === TRANSACTION ===
2
+
3
+ class ArangoTransaction < ArangoServer
4
+ def initialize(database: @@database, action:, write: [], read: [], params: nil, lockTimeout: nil, waitForSync: nil) # TESTED
5
+ if database.is_a?(String)
6
+ @database = database
7
+ elsif database.is_a?(ArangoDatabase)
8
+ @database = database.database
9
+ else
10
+ raise "database should be a String or an ArangoDatabase instance, not a #{database.class}"
11
+ end
12
+ @action = action
13
+ @collections = {}
14
+ @collections["write"] = write.is_a?(Array) ? write.map{ |x| x.is_a?(String) ? x : x.is_a?(ArangoCollection) ? x.collection : nil } : write.is_a?(String) ? [write] : write.is_a?(ArangoCollection) ? [write.collection] : []
15
+ @collections["read"] = read.is_a?(Array) ? read.map{ |x| x.is_a?(String) ? x : x.is_a?(ArangoCollection) ? x.collection : nil } : read.is_a?(String) ? [read] : read.is_a?(ArangoCollection) ? [read.collection] : []
16
+ @params = params
17
+ @lockTimeout = lockTimeout
18
+ @waitForSync = waitForSync
19
+ end
20
+
21
+ attr_reader :action, :collections, :params, :lockTimeout, :waitForSync
22
+
23
+ def execute # TESTED
24
+ body = {
25
+ "action" => @action,
26
+ "collections" => @collections,
27
+ "params" => @params,
28
+ "lockTimeout" => @lockTimeout,
29
+ "waitForSync" => @waitForSync
30
+ }.delete_if{|k,v| v.nil?}.to_json
31
+ request = @@request.merge({ :body => body })
32
+ result = self.class.post("/_db/#{@database}/_api/transaction", request)
33
+ if @@async == "store"
34
+ result.headers["x-arango-async-id"]
35
+ else
36
+ result = result.parsed_response
37
+ if @@verbose
38
+ result
39
+ else
40
+ if result["error"]
41
+ {"message": result["errorMessage"], "stacktrace": result["stacktrace"]}
42
+ else
43
+ result["result"]
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,152 @@
1
+ # === USER ===
2
+
3
+ class ArangoUser < ArangoServer
4
+ def initialize(user: @@user, password: nil, active: nil, extra: nil) # TESTED
5
+ @password = password
6
+ @user = user
7
+ @active = active
8
+ @extra = extra
9
+ end
10
+
11
+ attr_reader :user, :active, :extra
12
+
13
+ def create(active: nil, extra: nil) # TESTED
14
+ body = {
15
+ "user" => @user,
16
+ "passwd" => @password,
17
+ "active" => active,
18
+ "extra" => extra
19
+ }.delete_if{|k,v| v.nil?}.to_json
20
+ request = @@request.merge({ :body => body })
21
+ result = self.class.post("/_api/user", request)
22
+ resultTemp = result.parsed_response
23
+ if @@async != "store" && !resultTemp["error"]
24
+ @active = resultTemp["active"]
25
+ @extra = resultTemp["extra"]
26
+ end
27
+ return_result result: result
28
+ end
29
+
30
+ def retrieve # TESTED
31
+ result = self.class.get("/_api/user/#{@user}", @@request)
32
+ resultTemp = result.parsed_response
33
+ if @@async != "store" && !resultTemp["error"]
34
+ @active = resultTemp["active"]
35
+ @extra = resultTemp["extra"]
36
+ end
37
+ return_result result: result
38
+ end
39
+
40
+ def grant(database: @@database) # TESTED
41
+ database = database.database if database.is_a?(ArangoDatabase)
42
+ body = { "grant" => "rw" }.to_json
43
+ request = @@request.merge({ :body => body })
44
+ result = self.class.put("/_api/user/#{@user}/database/#{database}", request)
45
+ return_result result: result, caseTrue: true
46
+ end
47
+
48
+ def revoke(database: @@database) # TESTED
49
+ database = database.database if database.is_a?(ArangoDatabase)
50
+ body = { "grant" => "none" }.to_json
51
+ request = @@request.merge({ :body => body })
52
+ result = self.class.put("/_api/user/#{@user}/database/#{database}", request)
53
+ return_result result: result, caseTrue: true
54
+ end
55
+
56
+ def databases # TESTED
57
+ result = self.class.get("/_api/user/#{@user}/database/", @@request)
58
+ return_result result: result, key: "result"
59
+ end
60
+
61
+ def replace(password:, active: nil, extra: nil) # TESTED
62
+ body = {
63
+ "passwd" => password,
64
+ "active" => active,
65
+ "extra" => extra
66
+ }.delete_if{|k,v| v.nil?}.to_json
67
+ request = @@request.merge({ :body => body })
68
+ result = self.class.put("/_api/user/#{@user}", request)
69
+ if @@async == "store"
70
+ result.headers["x-arango-async-id"]
71
+ else
72
+ result = result.parsed_response
73
+ if @@verbose
74
+ unless result["error"]
75
+ @password = password
76
+ @active = active.nil? || active
77
+ @extra = extra
78
+ end
79
+ result
80
+ else
81
+ if result["error"]
82
+ result["errorMessage"]
83
+ else
84
+ @password = password
85
+ @active = active.nil? || active
86
+ @extra = extra
87
+ self
88
+ end
89
+ end
90
+ end
91
+ end
92
+
93
+ def update(password: , active: nil, extra: nil) # TESTED
94
+ body = {
95
+ "passwd" => password,
96
+ "active" => active,
97
+ "extra" => extra
98
+ }.delete_if{|k,v| v.nil?}.to_json
99
+ request = @@request.merge({ :body => body })
100
+ result = self.class.patch("/_api/user/#{@user}", request)
101
+ if @@async == "store"
102
+ result.headers["x-arango-async-id"]
103
+ else
104
+ result = result.parsed_response
105
+ if @@verbose
106
+ unless result["error"]
107
+ @password = password
108
+ @active = active.nil? || active
109
+ @extra = extra
110
+ end
111
+ result
112
+ else
113
+ if result["error"]
114
+ result["errorMessage"]
115
+ else
116
+ @password = password
117
+ @active = active.nil? || active
118
+ @extra = extra
119
+ self
120
+ end
121
+ end
122
+ end
123
+ end
124
+
125
+ def destroy # TESTED
126
+ result = self.class.delete("/_api/user/#{@user}", @@request)
127
+ return_result result: result, caseTrue: true
128
+ end
129
+
130
+ def return_result(result:, caseTrue: false, key: nil)
131
+ if @@async == "store"
132
+ result.headers["x-arango-async-id"]
133
+ else
134
+ result = result.parsed_response
135
+ if @@verbose || !result.is_a?(Hash)
136
+ result
137
+ else
138
+ if result["error"]
139
+ result["errorMessage"]
140
+ else
141
+ if caseTrue
142
+ true
143
+ elsif key.nil?
144
+ self
145
+ else
146
+ result[key]
147
+ end
148
+ end
149
+ end
150
+ end
151
+ end
152
+ end
data/lib/ArangoRB_Ver.rb CHANGED
@@ -2,22 +2,22 @@
2
2
 
3
3
  # ==== DOCUMENT ====
4
4
 
5
- class ArangoV < ArangoDoc
6
- def initialize(key: nil, collection: @@collection, graph: @@graph, database: @@database, body: {})
5
+ class ArangoVertex < ArangoDocument
6
+ def initialize(key: nil, collection: @@collection, graph: @@graph, database: @@database, body: {}) # TESTED
7
7
  if collection.is_a?(String)
8
8
  @collection = collection
9
- elsif collection.is_a?(ArangoC)
9
+ elsif collection.is_a?(ArangoCollection)
10
10
  @collection = collection.collection
11
11
  else
12
- raise "collection should be a String or an ArangoC instance, not a #{collection.class}"
12
+ raise "collection should be a String or an ArangoCollection instance, not a #{collection.class}"
13
13
  end
14
14
 
15
15
  if graph.is_a?(String)
16
16
  @graph = graph
17
- elsif graph.is_a?(ArangoG)
17
+ elsif graph.is_a?(ArangoGraph)
18
18
  @graph = graph.graph
19
19
  else
20
- raise "graph should be a String or an ArangoG instance, not a #{graph.class}"
20
+ raise "graph should be a String or an ArangoGraph instance, not a #{graph.class}"
21
21
  end
22
22
 
23
23
  if database.is_a?(String)
@@ -47,91 +47,108 @@ class ArangoV < ArangoDoc
47
47
 
48
48
  # === GET ===
49
49
 
50
- def retrieve
51
- result = self.class.get("/_db/#{@database}/_api/gharial/#{@graph}/vertex/#{@id}").parsed_response
52
- if @@verbose
53
- @body = result["vertex"] unless result["error"]
54
- result
50
+ def retrieve # TESTED
51
+ result = self.class.get("/_db/#{@database}/_api/gharial/#{@graph}/vertex/#{@id}", @@request)
52
+ if @@async == "store"
53
+ result.headers["x-arango-async-id"]
55
54
  else
56
- if result["error"]
57
- result["errorMessage"]
55
+ result = result.parsed_response
56
+ if @@verbose
57
+ @body = result["vertex"] unless result["error"]
58
+ result
58
59
  else
59
- @body = result["vertex"]
60
- self
60
+ if result["error"]
61
+ result["errorMessage"]
62
+ else
63
+ @body = result["vertex"]
64
+ self
65
+ end
61
66
  end
62
67
  end
63
68
  end
64
69
 
65
70
  # === POST ====
66
71
 
67
- def create(body: @body, waitForSync: nil)
72
+ def create(body: @body, waitForSync: nil) # TESTED
68
73
  query = {"waitForSync" => waitForSync}.delete_if{|k,v| v.nil?}
69
74
  body["_key"] = @key if body["_key"].nil? && !@key.nil?
70
- new_Document = { :body => body.to_json, :query => query }
71
- result = self.class.post("/_db/#{@database}/_api/gharial/#{@graph}/vertex/#{@collection}", new_Document).parsed_response
72
- return_result(result, body)
75
+ request = @@request.merge({ :body => body.to_json, :query => query })
76
+ result = self.class.post("/_db/#{@database}/_api/gharial/#{@graph}/vertex/#{@collection}", request)
77
+ return_result result: result, body: body
73
78
  end
74
79
  alias create_vertex create
75
80
 
76
81
  # === MODIFY ===
77
82
 
78
- def replace(body: {}, waitForSync: nil)
83
+ def replace(body: {}, waitForSync: nil) # TESTED
79
84
  query = { "waitForSync" => waitForSync }.delete_if{|k,v| v.nil?}
80
- new_Document = { :body => body.to_json, :query => query }
81
- result = self.class.put("/_db/#{@database}/_api/gharial/#{@graph}/vertex/#{@id}", new_Document).parsed_response
82
- return_result(result, body)
85
+ request = @@request.merge({ :body => body.to_json, :query => query })
86
+ result = self.class.put("/_db/#{@database}/_api/gharial/#{@graph}/vertex/#{@id}", request)
87
+ return_result result: result, body: body
83
88
  end
84
89
 
85
- def update(body: {}, waitForSync: nil, keepNull: nil)
90
+ def update(body: {}, waitForSync: nil, keepNull: nil) # TESTED
86
91
  query = {"waitForSync" => waitForSync, "keepNull" => keepNull}.delete_if{|k,v| v.nil?}
87
- new_Document = { :body => body.to_json, :query => query }
88
- result = self.class.patch("/_db/#{@database}/_api/gharial/#{@graph}/vertex/#{@id}", new_Document).parsed_response
89
- if @@verbose
90
- unless result["error"]
91
- @key = result["_key"]
92
- @id = "#{@collection}/#{@key}"
93
- @body = body
94
- end
95
- result
92
+ request = @@request.merge({ :body => body.to_json, :query => query })
93
+ result = self.class.patch("/_db/#{@database}/_api/gharial/#{@graph}/vertex/#{@id}", request)
94
+ if @@async == "store"
95
+ result.headers["x-arango-async-id"]
96
96
  else
97
- if result["error"]
98
- result["errorMessage"]
97
+ result = result.parsed_response
98
+ if @@verbose
99
+ unless result["error"]
100
+ @key = result["_key"]
101
+ @id = "#{@collection}/#{@key}"
102
+ @body = result["vertex"].body
103
+ end
104
+ result
99
105
  else
100
- @key = result["_key"]
101
- @id = "#{@collection}/#{@key}"
102
- @body = @body.merge(body)
103
- self
106
+ if result["error"]
107
+ result["errorMessage"]
108
+ else
109
+ @key = result["vertex"]["_key"]
110
+ @id = "#{@collection}/#{@key}"
111
+ @body = @body.merge(body)
112
+ @body = @body.merge(result["vertex"])
113
+ self
114
+ end
104
115
  end
105
116
  end
106
117
  end
107
118
 
108
119
  # === DELETE ===
109
120
 
110
- def destroy(body: nil, waitForSync: nil)
121
+ def destroy(waitForSync: nil) # TESTED
111
122
  query = { "waitForSync" => waitForSync }.delete_if{|k,v| v.nil?}
112
- new_Document = { :query => query }
113
- result = self.class.delete("/_db/#{@database}/_api/gharial/#{@graph}/vertex/#{@id}").parsed_response
114
- @@verbose ? result : result["error"] ? result["errorMessage"] : true
123
+ request = @@request.merge({ :query => query })
124
+ result = self.class.delete("/_db/#{@database}/_api/gharial/#{@graph}/vertex/#{@id}", request)
125
+ return_result result: result, caseTrue: true
115
126
  end
116
127
 
117
128
  # === UTILITY ===
118
129
 
119
- def return_result(result, body)
120
- if @@verbose
121
- unless result["error"]
122
- @key = result["vertex"]["_key"]
123
- @id = "#{@collection}/#{@key}"
124
- @body = body
125
- end
126
- result
130
+ def return_result(result:, body: {}, caseTrue: false)
131
+ if @@async == "store"
132
+ result.headers["x-arango-async-id"]
127
133
  else
128
- if result["error"]
129
- result["errorMessage"]
134
+ result = result.parsed_response
135
+ if @@verbose
136
+ unless result["error"]
137
+ @key = result["vertex"]["_key"]
138
+ @id = "#{@collection}/#{@key}"
139
+ @body = result["vertex"].merge(body)
140
+ end
141
+ result
130
142
  else
131
- @key = result["vertex"]["_key"]
132
- @id = "#{@collection}/#{@key}"
133
- @body = body
134
- self
143
+ if result["error"]
144
+ result["errorMessage"]
145
+ else
146
+ return true if caseTrue
147
+ @key = result["vertex"]["_key"]
148
+ @id = "#{@collection}/#{@key}"
149
+ @body = result["vertex"].merge(body)
150
+ self
151
+ end
135
152
  end
136
153
  end
137
154
  end
data/lib/arangorb.rb CHANGED
@@ -8,3 +8,7 @@ require_relative "ArangoRB_Ver"
8
8
  require_relative "ArangoRB_Edg"
9
9
  require_relative "ArangoRB_Tra"
10
10
  require_relative "ArangoRB_AQL"
11
+ require_relative "ArangoRB_User"
12
+ require_relative "ArangoRB_Index"
13
+ require_relative "ArangoRB_Task"
14
+ require_relative "ArangoRB_Tran"
@@ -1,9 +1,2 @@
1
- require "lib/arangoS_helper"
2
- require "lib/arangoDB_helper"
3
- require "lib/arangoC_helper"
4
- require "lib/arangoDoc_helper"
5
- require "lib/arangoG_helper"
6
- require "lib/arangoV_helper"
7
- require "lib/arangoE_helper"
8
- require "lib/arangoT_helper"
9
- require "lib/arangoAQL_helper"
1
+ require "lib/arangoRB_0.1.0_helper"
2
+ require "lib/arangoRB_1.0.0_helper"
@@ -0,0 +1,14 @@
1
+ require "rspec"
2
+ require_relative File.expand_path('../../lib/arangorb', __FILE__)
3
+
4
+ RSpec.configure do |config|
5
+ config.color = true
6
+ end
7
+
8
+ describe ArangoServer do
9
+ context "#restart" do
10
+ it "restart" do
11
+ print ArangoServer.restart
12
+ end
13
+ end
14
+ end
@@ -1,25 +1,6 @@
1
- require_relative './../spec_helper'
2
-
3
- describe ArangoT do
4
- before :all do
5
- ArangoS.default_server user: "root", password: "tretretre", server: "localhost", port: "8529"
6
- ArangoS.database = "MyDatabase"
7
- ArangoS.collection = "MyCollection"
8
- ArangoS.graph = "MyGraph"
9
- ArangoDB.new.create
10
- @myGraph = ArangoG.new.create
11
- @myCollection = ArangoC.new.create
12
- @myEdgeCollection = ArangoC.new(collection: "MyEdgeCollection").create_edge_collection
13
- @myGraph.addEdgeCollection collection: "MyEdgeCollection", from: "MyCollection", to: "MyCollection"
14
- @myAQL = ArangoAQL.new query: "FOR u IN MyCollection RETURN u.num"
15
- @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}]
16
- @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]
17
- end
18
-
19
- after :all do
20
- ArangoDB.new.destroy
21
- end
1
+ require_relative './../../spec_helper'
22
2
 
3
+ describe ArangoAQL do
23
4
  context "#new" do
24
5
  it "create a new AQL instance" do
25
6
  myAQL = ArangoAQL.new query: "FOR u IN MyCollection RETURN u.num"