arangorb 1.4.1 → 2.0.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 (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
data/lib/ArangoRB_Col.rb DELETED
@@ -1,526 +0,0 @@
1
- # === COLLECTION ===
2
-
3
- class ArangoCollection < ArangoServer
4
- def initialize(collection: @@collection, database: @@database, body: {}, type: nil) # TESTED
5
- if collection.is_a?(String)
6
- @collection = collection
7
- elsif collection.is_a?(ArangoCollection)
8
- @collection = collection.collection
9
- else
10
- raise "collection should be a String or an ArangoCollection instance, not a #{collection.class}"
11
- end
12
-
13
- if database.is_a?(String)
14
- @database = database
15
- elsif database.is_a?(ArangoDatabase)
16
- @database = database.database
17
- else
18
- raise "database should be a String or an ArangoDatabase instance, not a #{database.class}"
19
- end
20
-
21
- if body.is_a?(Hash)
22
- @body = body
23
- else
24
- raise "body should be a Hash, not a #{body.class}"
25
- end
26
-
27
- if !@type.nil? && @type != "Document" && @type != "Edge"
28
- raise "type should be \"Document\" or \"Edge\""
29
- else
30
- @type = type
31
- if @type == "Document"
32
- @body["type"] = 2
33
- elsif @type == "Edge"
34
- @body["type"] = 3
35
- end
36
- end
37
- @idCache = "COL_#{@collection}"
38
- end
39
-
40
- attr_reader :collection, :body, :type, :idCache
41
- alias name collection
42
-
43
- # === RETRIEVE ===
44
-
45
- def to_hash
46
- {
47
- "collection" => @collection,
48
- "database" => @database,
49
- "type" => @type,
50
- "body" => @body,
51
- "idCache" => @idCache
52
- }.delete_if{|k,v| v.nil?}
53
- end
54
- alias to_h to_hash
55
-
56
- def [](document_name)
57
- ArangoDocument.new(key: document_name, collection: @collection, database: @database)
58
- end
59
- alias document []
60
-
61
- def database
62
- ArangoDatabase.new(database: @database)
63
- end
64
-
65
- # === GET ===
66
-
67
- def retrieve # TESTED
68
- result = self.class.get("/_db/#{@database}/_api/collection/#{@collection}", @@request)
69
- self.return_result result: result, checkType: true
70
- end
71
-
72
- def properties # TESTED
73
- result = self.class.get("/_db/#{@database}/_api/collection/#{@collection}/properties", @@request)
74
- result = self.return_result result: result
75
- return result.is_a?(ArangoCollection) ? result.body : result
76
- end
77
-
78
- def count # TESTED
79
- result = self.class.get("/_db/#{@database}/_api/collection/#{@collection}/count", @@request)
80
- self.return_result result: result, key: "count"
81
- end
82
-
83
- def statistics # TESTED
84
- result = self.class.get("/_db/#{@database}/_api/collection/#{@collection}/figures", @@request)
85
- self.return_result result: result, key: "figures"
86
- end
87
-
88
- def revision # TESTED
89
- result = self.class.get("/_db/#{@database}/_api/collection/#{@collection}/revision", @@request)
90
- self.return_result result: result, key: "revision"
91
- end
92
-
93
- def checksum(withRevisions: nil, withData: nil) # TESTED
94
- query = {
95
- "withRevisions": withRevisions,
96
- "withData": withData
97
- }.delete_if{|k,v| v.nil?}
98
- request = @@request.merge({ :query => query })
99
- result = self.class.get("/_db/#{@database}/_api/collection/#{@collection}/checksum", request)
100
- self.return_result result: result, key: "checksum"
101
- end
102
-
103
- # === POST ===
104
-
105
- def create(type: @type, journalSize: nil, keyOptions: nil, waitForSync: nil, doCompact: nil, isVolatile: nil, shardKeys: nil, numberOfShards: nil, isSystem: nil, indexBuckets: nil) # TESTED
106
- type = 3 if type == "Edge"
107
- type = nil if type == "Document"
108
- body = {
109
- "name" => collection,
110
- "type" => type,
111
- "journalSize" => journalSize,
112
- "keyOptions" => keyOptions,
113
- "waitForSync" => waitForSync,
114
- "doCompact" => doCompact,
115
- "isVolatile" => isVolatile,
116
- "shardKeys" => shardKeys,
117
- "numberOfShards" => numberOfShards,
118
- "isSystem" => isSystem,
119
- "indexBuckets" => indexBuckets
120
- }
121
- body = body.delete_if{|k,v| v.nil?}.to_json
122
- request = @@request.merge({ :body => body })
123
- result = self.class.post("/_db/#{@database}/_api/collection", request)
124
- self.return_result result: result, checkType: true
125
- end
126
- alias create_collection create
127
- alias create_document_collection create
128
- alias create_vertex_collection create
129
-
130
- def create_edge_collection(journalSize: nil, keyOptions: nil, waitForSync: nil, doCompact: nil, isVolatile: nil, shardKeys: nil, numberOfShards: nil, isSystem: nil, indexBuckets: nil) # TESTED
131
- self.create type: 3, journalSize: journalSize, keyOptions: keyOptions, waitForSync: waitForSync, doCompact: doCompact, isVolatile: isVolatile, shardKeys: shardKeys, numberOfShards: numberOfShards, isSystem: isSystem, indexBuckets: indexBuckets
132
- end
133
-
134
- def create_document(document: {}, waitForSync: nil, returnNew: nil) # TESTED
135
- ArangoDocument.create(body: document, waitForSync: waitForSync, returnNew: returnNew, database: @database, collection: @collection)
136
- end
137
- alias create_vertex create_document
138
-
139
- def create_edge(document: {}, from:, to:, waitForSync: nil, returnNew: nil) # TESTED
140
- ArangoDocument.create_edge(body: document, from: from, to: to, waitForSync: waitForSync, returnNew: returnNew, database: @database, collection: @collection)
141
- end
142
-
143
- # === DELETE ===
144
-
145
- def destroy # TESTED
146
- result = self.class.delete("/_db/#{@database}/_api/collection/#{@collection}", @@request)
147
- self.return_result result: result, caseTrue: true
148
- end
149
-
150
- def truncate # TESTED
151
- result = self.class.put("/_db/#{@database}/_api/collection/#{@collection}/truncate", @@request)
152
- self.return_result result: result
153
- end
154
-
155
- # === MODIFY ===
156
-
157
- def load # TESTED
158
- result = self.class.put("/_db/#{@database}/_api/collection/#{@collection}/load", @@request)
159
- self.return_result result: result
160
- end
161
-
162
- def unload # TESTED
163
- result = self.class.put("/_db/#{@database}/_api/collection/#{@collection}/unload", @@request)
164
- self.return_result result: result
165
- end
166
-
167
- def change(waitForSync: nil, journalSize: nil) # TESTED
168
- body = {
169
- "journalSize" => journalSize,
170
- "waitForSync" => waitForSync
171
- }
172
- body = body.delete_if{|k,v| k.nil?}.to_json
173
- request = @@request.merge({ :body => body })
174
- result = self.class.put("/_db/#{@database}/_api/collection/#{@collection}/properties", request)
175
- self.return_result result: result
176
- end
177
-
178
- def rename(newName) # TESTED
179
- body = { "name" => newName }
180
- request = @@request.merge({ :body => body.to_json })
181
- result = self.class.put("/_db/#{@database}/_api/collection/#{@collection}/rename", request)
182
- @collection = newName unless result.parsed_response["error"]
183
- self.return_result result: result
184
- end
185
-
186
- def rotate
187
- result = self.class.put("/_db/#{@database}/_api/collection/#{@collection}/rotate", @@request)
188
- self.return_result result: result, caseTrue: true
189
- end
190
-
191
- # === SIMPLE FUNCTIONS ===
192
-
193
- def documents(type: nil) # "path", "id", "key" # TESTED
194
- body = {
195
- "collection" => @collection,
196
- "type" => type
197
- }.delete_if{|k,v| v.nil?}.to_json
198
- request = @@request.merge({ :body => body })
199
- result = self.class.put("/_db/#{@database}/_api/simple/all-keys", request)
200
- return result.headers["x-arango-async-id"] if @@async == "store"
201
- return true if @@async
202
- result = result.parsed_response
203
- if type.nil?
204
- @@verbose ? result : result["error"] ? result["errorMessage"] : result["result"].map{|x| value = self.class.get(x).parsed_response; ArangoDocument.new(key: value["_key"], collection: @collection, body: value)}
205
- else
206
- @@verbose ? result : result["error"] ? result["errorMessage"] : result["result"]
207
- end
208
- end
209
-
210
- def allDocuments(skip: nil, limit: nil, batchSize: nil) # TESTED
211
- body = {
212
- "collection" => @collection,
213
- "skip" => skip,
214
- "limit" => limit,
215
- "batchSize" => batchSize
216
- }.delete_if{|k,v| v.nil?}.to_json
217
- request = @@request.merge({ :body => body })
218
- result = self.class.put("/_db/#{@database}/_api/simple/all", request)
219
- return result.headers["x-arango-async-id"] if @@async == "store"
220
- return true if @@async
221
- result = result.parsed_response
222
- @@verbose ? result : result["error"] ? result["errorMessage"] : result["result"].map{|x| ArangoDocument.new(key: x["_key"], collection: @collection, body: x)}
223
- end
224
-
225
- def documentsMatch(match:, skip: nil, limit: nil, batchSize: nil) # TESTED
226
- body = {
227
- "collection" => @collection,
228
- "example" => match,
229
- "skip" => skip,
230
- "limit" => limit,
231
- "batchSize" => batchSize
232
- }.delete_if{|k,v| v.nil?}.to_json
233
- request = @@request.merge({ :body => body })
234
- result = self.class.put("/_db/#{@database}/_api/simple/by-example", request)
235
- return result.headers["x-arango-async-id"] if @@async == "store"
236
- return true if @@async
237
- result = result.parsed_response
238
- @@verbose ? result : result["error"] ? result["errorMessage"] : result["result"].map{|x| ArangoDocument.new(key: x["_key"], collection: @collection, body: x)}
239
- end
240
-
241
- def documentMatch(match:) # TESTED
242
- body = {
243
- "collection" => @collection,
244
- "example" => match
245
- }.delete_if{|k,v| v.nil?}.to_json
246
- request = @@request.merge({ :body => body })
247
- result = self.class.put("/_db/#{@database}/_api/simple/first-example", request)
248
- return result.headers["x-arango-async-id"] if @@async == "store"
249
- return true if @@async
250
- result = result.parsed_response
251
- @@verbose ? result : result["error"] ? result["errorMessage"] : ArangoDocument.new(key: result["document"]["_key"], collection: @collection, body: result["document"])
252
- end
253
-
254
- def documentByKeys(keys:) # TESTED
255
- keys = keys.map{|x| x.is_a?(String) ? x : x.is_a?(ArangoDocument) ? x.key : nil} if keys.is_a? Array
256
- keys = [keys] if keys.is_a? String
257
- body = { "collection" => @collection, "keys" => keys }
258
- request = @@request.merge({ :body => body.to_json })
259
- result = self.class.put("/_db/#{@database}/_api/simple/lookup-by-keys", request)
260
- return result.headers["x-arango-async-id"] if @@async == "store"
261
- return true if @@async
262
- result = result.parsed_response
263
- @@verbose ? result : result["error"] ? result["errorMessage"] : result["documents"].map{|x| ArangoDocument.new(key: x["_key"], collection: @collection, body: x)}
264
- end
265
-
266
- def random # TESTED
267
- body = { "collection" => @collection }.to_json
268
- request = @@request.merge({ :body => body })
269
- result = self.class.put("/_db/#{@database}/_api/simple/any", request)
270
- return result.headers["x-arango-async-id"] if @@async == "store"
271
- return true if @@async
272
- result = result.parsed_response
273
- @@verbose ? result : result["error"] ? result["errorMessage"] : ArangoDocument.new(key: result["document"]["_key"], collection: @collection, body: result["document"])
274
- end
275
-
276
- def removeByKeys(keys:, options: nil) # TESTED
277
- keys = keys.map{|x| x.is_a?(String) ? x : x.is_a?(ArangoDocument) ? x.key : nil}
278
- body = { "collection" => @collection, "keys" => keys, "options" => options }.delete_if{|k,v| v.nil?}.to_json
279
- request = @@request.merge({ :body => body })
280
- result = self.class.put("/_db/#{@database}/_api/simple/remove-by-keys", request)
281
- self.return_result result: result, key: "removed"
282
- end
283
-
284
- def removeMatch(match:, options: nil) # TESTED
285
- body = {
286
- "collection" => @collection,
287
- "example" => match,
288
- "options" => options
289
- }.delete_if{|k,v| v.nil?}.to_json
290
- request = @@request.merge({ :body => body })
291
- result = self.class.put("/_db/#{@database}/_api/simple/remove-by-example", request)
292
- self.return_result result: result, key: "deleted"
293
- end
294
-
295
- def replaceMatch(match:, newValue:, options: nil) # TESTED
296
- body = {
297
- "collection" => @collection,
298
- "example" => match,
299
- "options" => options,
300
- "newValue" => newValue
301
- }.delete_if{|k,v| v.nil?}.to_json
302
- request = @@request.merge({ :body => body })
303
- result = self.class.put("/_db/#{@database}/_api/simple/replace-by-example", request)
304
- self.return_result result: result, key: "replaced"
305
- end
306
-
307
- def updateMatch(match:, newValue:, options: nil) # TESTED
308
- body = {
309
- "collection" => @collection,
310
- "example" => match,
311
- "options" => options,
312
- "newValue" => newValue
313
- }.delete_if{|k,v| v.nil?}.to_json
314
- request = @@request.merge({ :body => body })
315
- result = self.class.put("/_db/#{@database}/_api/simple/update-by-example", request)
316
- self.return_result result: result, key: "updated"
317
- end
318
-
319
- # === IMPORT ===
320
-
321
- def import(attributes:, values:, from: nil, to: nil, overwrite: nil, waitForSync: nil, onDuplicate: nil, complete: nil, details: nil) # TESTED
322
- query = {
323
- "collection": @collection,
324
- "fromPrefix": from,
325
- "toPrefix": to,
326
- "overwrite": overwrite,
327
- "waitForSync": waitForSync,
328
- "onDuplicate": onDuplicate,
329
- "complete": complete,
330
- "details": details
331
- }.delete_if{|k,v| v.nil?}
332
- body = "#{attributes}\n"
333
- values[0].is_a?(Array) ? values.each{|x| body += "#{x}\n"} : body += "#{values}\n"
334
- request = @@request.merge({ :body => body, :query => query })
335
- result = self.class.post("/_db/#{@database}/_api/import", request)
336
- return result.headers["x-arango-async-id"] if @@async == "store"
337
- return true if @@async
338
- result = result.parsed_response
339
- @@verbose ? result : result["error"] ? result["errorMessage"] : result.delete_if{|k,v| k == "error" || k == "code"}
340
- end
341
-
342
- def importJSON(body:, type: "auto", from: nil, to: nil, overwrite: nil, waitForSync: nil, onDuplicate: nil, complete: nil, details: nil) # TESTED
343
- query = {
344
- "collection": @collection,
345
- "type": type,
346
- "fromPrefix": from,
347
- "toPrefix": to,
348
- "overwrite": overwrite,
349
- "waitForSync": waitForSync,
350
- "onDuplicate": onDuplicate,
351
- "complete": complete,
352
- "details": details
353
- }.delete_if{|k,v| v.nil?}
354
- request = @@request.merge({ :body => body.to_json, :query => query })
355
- result = self.class.post("/_db/#{@database}/_api/import", request)
356
- return result.headers["x-arango-async-id"] if @@async == "store"
357
- return true if @@async
358
- result = result.parsed_response
359
- @@verbose ? result : result["error"] ? result["errorMessage"] : result.delete_if{|k,v| k == "error" || k == "code"}
360
- end
361
-
362
- # === EXPORT ===
363
-
364
- def export(count: nil, restrict: nil, batchSize: nil, flush: nil, limit: nil, ttl: nil) # TESTED
365
- query = { "collection" => @collection }
366
- body = {
367
- "count" => count,
368
- "restrict" => restrict,
369
- "batchSize" => batchSize,
370
- "flush" => flush,
371
- "limit" => limit,
372
- "ttl" => ttl
373
- }.delete_if{|k,v| v.nil?}
374
- request = @@request.merge({ :body => body.to_json, :query => query })
375
- result = self.class.post("/_db/#{@database}/_api/export", request)
376
- return result.headers["x-arango-async-id"] if @@async == "store"
377
- return true if @@async
378
- result = result.parsed_response
379
- return @@verbose ? result : result["errorMessage"] if result["error"]
380
- @countExport = result["count"]
381
- @hasMoreExport = result["hasMore"]
382
- @idExport = result["id"]
383
- if(result["result"][0].nil? || !result["result"][0].is_a?(Hash) || !result["result"][0].key?("_key"))
384
- result = result["result"]
385
- else
386
- result = result["result"].map{|x| ArangoDocument.new(key: x["_key"], collection: @collection, database: @database, body: x)}
387
- end
388
- result
389
- end
390
-
391
- def exportNext # TESTED
392
- unless @hasMoreExport
393
- print "No other results"
394
- else
395
- query = { "collection": @collection }
396
- request = @@request.merge({ :query => query })
397
- result = self.class.put("/_db/#{@database}/_api/export/#{@idExport}", request)
398
- return result.headers["x-arango-async-id"] if @@async == "store"
399
- return true if @@async
400
- result = result.parsed_response
401
- return @@verbose ? result : result["errorMessage"] if result["error"]
402
- @countExport = result["count"]
403
- @hasMoreExport = result["hasMore"]
404
- @idExport = result["id"]
405
- if(result["result"][0].nil? || !result["result"][0].is_a?(Hash) || !result["result"][0].key?("_key"))
406
- result = result["result"]
407
- else
408
- result = result["result"].map{|x| ArangoDocument.new(key: x["_key"], collection: @collection, database: @database, body: x)}
409
- end
410
- result
411
- end
412
- end
413
-
414
- # === INDEXES ===
415
-
416
- # def retrieveIndex(id:) # TESTED
417
- # result = self.class.get("/_db/#{@database}/_api/index/#{@collection}/#{id}", @@request)
418
- # if @@async == "store"
419
- # result.headers["x-arango-async-id"]
420
- # else
421
- # result = result.parsed_response
422
- # if @@verbose
423
- # result
424
- # else
425
- # if result["error"]
426
- # result["errorMessage"]
427
- # else
428
- # ArangoIndex.new(body: result, id: result["id"], database: @database, collection: @collection, type: result["type"], unique: result["unique"], fields: result["fields"])
429
- # end
430
- # end
431
- # end
432
- # end
433
-
434
- def indexes # TESTED
435
- query = { "collection": @collection }
436
- request = @@request.merge({ :query => query })
437
- result = self.class.get("/_db/#{@database}/_api/index", request)
438
- return result.headers["x-arango-async-id"] if @@async == "store"
439
- return true if @@async
440
- result = result.parsed_response
441
- return result if @@verbose
442
- return result["errorMessage"] if result["error"]
443
- result.delete_if{|k,v| k == "error" || k == "code"}
444
- result["indexes"] = result["indexes"].map{|x| ArangoIndex.new(body: x, id: x["id"], database: @database, collection: @collection, type: x["type"], unique: x["unique"], fields: x["fields"])}
445
- result
446
- end
447
-
448
- def createIndex(body: {}, unique: nil, type:, fields:, id: nil) # TESTED
449
- body["fields"] = fields.is_a?(Array) ? fields : [fields]
450
- body["unique"] = unique unless unique.nil?
451
- body["type"] = type unless type.nil?
452
- body["id"] = id unless type.nil?
453
- query = { "collection": @collection }
454
- request = @@request.merge({ :body => body.to_json, :query => query })
455
- result = self.class.post("/_db/#{@database}/_api/index", request)
456
- return result.headers["x-arango-async-id"] if @@async == "store"
457
- return true if @@async
458
- result = result.parsed_response
459
- @@verbose ? result : result["error"] ? result["errorMessage"] : ArangoIndex.new(body: result, id: result["id"], database: @database, collection: @collection, type: result["type"], unique: result["unique"], fields: result["fields"])
460
- end
461
- #
462
- # def deleteIndex(id:) # TESTED
463
- # result = self.class.delete("/_db/#{@database}/_api/index/#{@collection}/#{id}", @@request)
464
- # if @@async == "store"
465
- # result.headers["x-arango-async-id"]
466
- # else
467
- # result = result.parsed_response
468
- # if @@verbose
469
- # result
470
- # else
471
- # if result["error"]
472
- # result["errorMessage"]
473
- # else
474
- # true
475
- # end
476
- # end
477
- # end
478
- # end
479
-
480
- # === REPLICATION ===
481
-
482
- def data(from: nil, to: nil, chunkSize: nil, includeSystem: false, failOnUnknown: nil, ticks: nil, flush: nil) # TESTED
483
- query = {
484
- "collection": @collection,
485
- "from": from,
486
- "to": to,
487
- "chunkSize": chunkSize,
488
- "includeSystem": includeSystem,
489
- "failOnUnknown": failOnUnknown,
490
- "ticks": ticks,
491
- "flush": flush
492
- }.delete_if{|k,v| v.nil?}
493
- request = @@request.merge({ :query => query })
494
- result = self.class.get("/_db/#{@database}/_api/replication/dump", request)
495
- return result.headers["x-arango-async-id"] if @@async == "store"
496
- return true if @@async
497
- result = result.parsed_response
498
- return nil if result.nil?
499
- @@verbose ? result : result["error"] ? result["errorMessage"] : result
500
- end
501
- alias dump data
502
-
503
- # === UTILITY ===
504
-
505
- def return_result(result:, caseTrue: false, key: nil, checkType: false)
506
- return result.headers["x-arango-async-id"] if @@async == "store"
507
- return true if @@async
508
- result = result.parsed_response
509
- if @@verbose || !result.is_a?(Hash)
510
- resultTemp = result
511
- unless result["errorMessage"]
512
- result.delete_if{|k,v| k == "error" || k == "code"}
513
- @body = result
514
- @type = result["type"] == 2 ? "Document" : "Edge" if(checkType)
515
- end
516
- resultTemp
517
- else
518
- return result["errorMessage"] if result["error"]
519
- return true if caseTrue
520
- result.delete_if{|k,v| k == "error" || k == "code"}
521
- @body = result
522
- @type = result["type"] == 2 ? "Document" : "Edge" if(checkType)
523
- key.nil? ? self : result[key]
524
- end
525
- end
526
- end