arango-driver 3.5.0.alpha0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +1073 -0
  4. data/arango_opal.js +15 -0
  5. data/lib/arango-driver.rb +61 -0
  6. data/lib/arango.rb +96 -0
  7. data/lib/arango/aql.rb +188 -0
  8. data/lib/arango/collection.rb +575 -0
  9. data/lib/arango/collection/documents.rb +122 -0
  10. data/lib/arango/collection/edges.rb +149 -0
  11. data/lib/arango/collection/importing.rb +57 -0
  12. data/lib/arango/collection/indexes.rb +53 -0
  13. data/lib/arango/collection/replication.rb +24 -0
  14. data/lib/arango/collection/user.rb +28 -0
  15. data/lib/arango/cursor.rb +67 -0
  16. data/lib/arango/database.rb +188 -0
  17. data/lib/arango/database/analyzer.rb +21 -0
  18. data/lib/arango/database/aql_functions.rb +54 -0
  19. data/lib/arango/database/aql_queries.rb +114 -0
  20. data/lib/arango/database/aql_query_cache.rb +27 -0
  21. data/lib/arango/database/collections.rb +100 -0
  22. data/lib/arango/database/foxx_services.rb +103 -0
  23. data/lib/arango/database/graph_access.rb +27 -0
  24. data/lib/arango/database/http_route.rb +9 -0
  25. data/lib/arango/database/replication.rb +96 -0
  26. data/lib/arango/database/stream_transactions.rb +25 -0
  27. data/lib/arango/database/tasks.rb +67 -0
  28. data/lib/arango/database/transactions.rb +15 -0
  29. data/lib/arango/database/user.rb +26 -0
  30. data/lib/arango/database/view_access.rb +37 -0
  31. data/lib/arango/document.rb +443 -0
  32. data/lib/arango/edge.rb +164 -0
  33. data/lib/arango/error.rb +97 -0
  34. data/lib/arango/error_db.rb +27 -0
  35. data/lib/arango/foxx.rb +255 -0
  36. data/lib/arango/graph.rb +202 -0
  37. data/lib/arango/graph/basics.rb +39 -0
  38. data/lib/arango/graph/edge_access.rb +56 -0
  39. data/lib/arango/graph/vertex_access.rb +33 -0
  40. data/lib/arango/helper/collection_assignment.rb +13 -0
  41. data/lib/arango/helper/database_assignment.rb +14 -0
  42. data/lib/arango/helper/request_method.rb +45 -0
  43. data/lib/arango/helper/return.rb +21 -0
  44. data/lib/arango/helper/satisfaction.rb +28 -0
  45. data/lib/arango/helper/server_assignment.rb +13 -0
  46. data/lib/arango/helper/traversal.rb +12 -0
  47. data/lib/arango/index.rb +103 -0
  48. data/lib/arango/replication.rb +231 -0
  49. data/lib/arango/request.rb +92 -0
  50. data/lib/arango/request_batch.rb +174 -0
  51. data/lib/arango/result.rb +130 -0
  52. data/lib/arango/search_view.rb +23 -0
  53. data/lib/arango/server.rb +68 -0
  54. data/lib/arango/server/administration.rb +296 -0
  55. data/lib/arango/server/agency.rb +23 -0
  56. data/lib/arango/server/async.rb +51 -0
  57. data/lib/arango/server/batch.rb +35 -0
  58. data/lib/arango/server/config.rb +76 -0
  59. data/lib/arango/server/databases.rb +71 -0
  60. data/lib/arango/server/monitoring.rb +17 -0
  61. data/lib/arango/server/opal_support.rb +95 -0
  62. data/lib/arango/server/tasks.rb +69 -0
  63. data/lib/arango/server/user.rb +22 -0
  64. data/lib/arango/task.rb +223 -0
  65. data/lib/arango/transaction.rb +113 -0
  66. data/lib/arango/traversal.rb +212 -0
  67. data/lib/arango/user.rb +174 -0
  68. data/lib/arango/version.rb +3 -0
  69. data/lib/arango/vertex.rb +112 -0
  70. data/lib/arango/view.rb +124 -0
  71. data/lib/arango/view/basics.rb +25 -0
  72. metadata +296 -0
@@ -0,0 +1,174 @@
1
+ # === USER ===
2
+
3
+ module Arango
4
+ class User
5
+ include Arango::Helper::Satisfaction
6
+ include Arango::Helper::Return
7
+ include Arango::Helper::ServerAssignment
8
+
9
+ def initialize(server:, password: "", name:, extra: {}, active: nil, cache_name: nil)
10
+ assign_server(server)
11
+ unless cache_name.nil?
12
+ @cache_name = cache_name
13
+ @server.cache.save(:user, cache_name, self)
14
+ end
15
+ @password = password
16
+ @name = name
17
+ @extra = extra
18
+ @active = active
19
+ end
20
+
21
+ # === DEFINE ===
22
+
23
+ attr_accessor :name, :extra, :active
24
+ attr_reader :server, :body, :cache_name
25
+ attr_writer :password
26
+ alias user name
27
+ alias user= name=
28
+
29
+ def body=(result)
30
+ @body = result
31
+ @password = result[:password] || @password
32
+ @name = result[:user] || @name
33
+ @extra = result[:extra] || @extra
34
+ @active = result[:active].nil? ? @active : result[:active]
35
+ if @server.active_cache && @cache_name.nil?
36
+ @cache_name = @name
37
+ @server.cache.save(:user, @cache_name, self)
38
+ end
39
+ end
40
+ alias assign_attributes body=
41
+
42
+ # === TO HASH ===
43
+
44
+ def to_h
45
+ {
46
+ active: @active,
47
+ cache_name: @cache_name,
48
+ extra: @extra,
49
+ server: @server.base_uri,
50
+ user: @name
51
+ }.delete_if{|k,v| v.nil?}
52
+ end
53
+
54
+ def [](database)
55
+ if self.databases[database.to_sym] == "rw"
56
+ Arango::Database.new name: database, server: @server
57
+ else
58
+ "This User does not have access to Database #{database}."
59
+ end
60
+ end
61
+ alias database []
62
+
63
+ # == USER ACTION ==
64
+
65
+ def create(password: @password, active: @active, extra: @extra)
66
+ body = {
67
+ user: @name,
68
+ passwd: password,
69
+ extra: extra,
70
+ active: active
71
+ }
72
+ result = @server.request("POST", "_api/user", body: body)
73
+ return_element(result)
74
+ end
75
+
76
+ def retrieve
77
+ result = @server.request("GET", "_api/user/#{@name}", body: body)
78
+ return_element(result)
79
+ end
80
+
81
+ def replace(password: @password, active: @active, extra: @extra)
82
+ body = {
83
+ passwd: password,
84
+ active: active,
85
+ extra: extra
86
+ }
87
+ result = @server.request("PUT", "_api/user/#{@name}", body: body)
88
+ @password = password
89
+ return_element(result)
90
+ end
91
+
92
+ def update(password: @password, active: @active, extra: @extra)
93
+ body = {
94
+ passwd: password,
95
+ active: active,
96
+ extra: extra
97
+ }
98
+ result = @server.request("PATCH", "_api/user/#{@name}", body: body)
99
+ @password = password
100
+ return_element(result)
101
+ end
102
+
103
+ def destroy
104
+ result = @server.request("DELETE", "_api/user/#{@name}")
105
+ return return_directly?(result) ? result : true
106
+ end
107
+
108
+ # == ACCESS ==
109
+
110
+ def add_database_access(grant:, database:)
111
+ satisfy_category?(grant, %w[rw ro none])
112
+ satisfy_class?(database, [Arango::Database, String])
113
+ database = database.name if database.is_a?(Arango::Database)
114
+ body = { grant: grant }
115
+ result = @server.request("PUT", "_api/user/#{@name}/database/#{database}", body: body)
116
+ return return_directly?(result) ? result : result[database.to_sym]
117
+ end
118
+
119
+ def grant(database:)
120
+ add_database_access(grant: "rw", database: database)
121
+ end
122
+
123
+ def add_collection_access(grant:, database:, collection:)
124
+ satisfy_category?(grant, %w[rw ro none])
125
+ satisfy_class?(database, [Arango::Database, String])
126
+ satisfy_class?(collection, [Arango::Collection, String])
127
+ database = database.name if database.is_a?(Arango::Database)
128
+ collection = collection.name if collection.is_a?(Arango::Collection)
129
+ body = { grant: grant }
130
+ result = @server.request("PUT", "_api/user/#{@name}/database/#{database}/#{collection}", body: body)
131
+ return return_directly?(result) ? result : result[:"#{database}/#{collection}"]
132
+ end
133
+
134
+ def revoke_database_access(database:)
135
+ satisfy_class?(database, [Arango::Database, String])
136
+ database = database.name if database.is_a?(Arango::Database)
137
+ result = @server.request("DELETE", "_api/user/#{@name}/database/#{database}")
138
+ return return_directly?(result) ? result : true
139
+ end
140
+ alias revoke revoke_database_access
141
+
142
+ def revoke_collection_access(database:, collection:)
143
+ satisfy_class?(database, [Arango::Database, String])
144
+ satisfy_class?(collection, [Arango::Collection, String])
145
+ database = database.name if database.is_a?(Arango::Database)
146
+ collection = collection.name if collection.is_a?(Arango::Collection)
147
+ result = @server.request("DELETE", "_api/user/#{@name}/database/#{database}/#{collection}")
148
+ return return_directly?(result) ? result : true
149
+ end
150
+
151
+ def list_access(full: nil)
152
+ query = { full: full }
153
+ result = @server.request("GET", "_api/user/#{@name}/database", query: query)
154
+ return return_directly?(result) ? result : result[:result]
155
+ end
156
+ alias databases list_access
157
+
158
+ def database_access(database:)
159
+ satisfy_class?(database, [Arango::Database, String])
160
+ database = database.name if database.is_a?(Arango::Database)
161
+ result = @server.request("GET", "_api/user/#{@name}/database/#{database}")
162
+ return return_directly?(result) ? result : result[:result]
163
+ end
164
+
165
+ def collection_access(database:, collection:)
166
+ satisfy_class?(database, [Arango::Database, String])
167
+ satisfy_class?(collection, [Arango::Collection, String])
168
+ database = database.name if database.is_a?(Arango::Database)
169
+ collection = collection.name if collection.is_a?(Arango::Collection)
170
+ result = @server.request("GET", "_api/user/#{@name}/database/#{database}/#{collection}", body: body)
171
+ return return_directly?(result) ? result : result[:result]
172
+ end
173
+ end
174
+ end
@@ -0,0 +1,3 @@
1
+ module Arango
2
+ VERSION = '3.5.0.alpha0'
3
+ end
@@ -0,0 +1,112 @@
1
+ # === GRAPH VERTEX ===
2
+
3
+ module Arango
4
+ class Vertex < Arango::Document
5
+ include Arango::Helper::Traversal
6
+
7
+ def initialize(name: nil, collection:, body: {}, rev: nil, cache_name: nil)
8
+ assign_collection(collection)
9
+ unless cache_name.nil?
10
+ @cache_name = cache_name
11
+ @server.cache.save(:document, cache_name, self)
12
+ end
13
+ body[:_key] ||= name
14
+ body[:_rev] ||= rev
15
+ body[:_id] ||= "#{@collection.name}/#{name}" unless name.nil?
16
+ assign_attributes(body)
17
+ end
18
+
19
+ # === DEFINE ===
20
+
21
+ attr_reader :collection, :database, :server, :graph
22
+
23
+ def collection=(collection)
24
+ satisfy_class?(collection, [Arango::Collection])
25
+ if collection.graph.nil?
26
+ raise Arango::Error.new err: :collection_does_not_have_a_graph, data:
27
+ {name_collection: collection.name, graph: nil}
28
+ end
29
+ @collection = collection
30
+ @graph = @collection.graph
31
+ @database = @collection.database
32
+ @server = @database.server
33
+ end
34
+ alias assign_collection collection=
35
+
36
+ # == GET ==
37
+
38
+ def retrieve(if_match: false)
39
+ headers = {}
40
+ headers[:"If-Match"] = @body[:_rev] if if_match
41
+ result = @graph.request("GET", "vertex/#{@collection.name}/#{@body[:_key]}", headers: headers, key: :vertex)
42
+ return_element(result)
43
+ end
44
+
45
+ # == POST ==
46
+
47
+ def create(body: {}, wait_for_sync: nil)
48
+ body = @body.merge(body)
49
+ query = { waitForSync: wait_for_sync }
50
+ result = @graph.request("POST", "vertex/#{@collection.name}", body: body,
51
+ query: query, key: :vertex)
52
+ return result if @server.async != false
53
+ body2 = result.clone
54
+ body = body.merge(body2)
55
+ assign_attributes(body)
56
+ return return_directly?(result) ? result : self
57
+ end
58
+
59
+ # == PUT ==
60
+
61
+ def replace(body: {}, if_match: false, keep_null: nil, wait_for_sync: nil)
62
+ query = {
63
+ waitForSync: wait_for_sync,
64
+ keepNull: keep_null
65
+ }
66
+ headers = {}
67
+ headers[:"If-Match"] = @body[:_rev] if if_match
68
+ result = @graph.request("PUT", "vertex/#{@collection.name}/#{@body[:_key]}",
69
+ body: body, query: query, headers: headers, key: :vertex)
70
+ return result if @server.async != false
71
+ body2 = result.clone
72
+ body = body.merge(body2)
73
+ assign_attributes(body)
74
+ return return_directly?(result) ? result : self
75
+ end
76
+
77
+ def update(body: {}, if_match: false, keep_null: nil, wait_for_sync: nil)
78
+ query = { waitForSync: wait_for_sync, keepNull: keep_null }
79
+ headers = {}
80
+ headers[:"If-Match"] = @body[:_rev] if if_match
81
+ result = @graph.request("PATCH", "vertex/#{@collection.name}/#{@body[:_key]}", body: body,
82
+ query: query, headers: headers, key: :vertex)
83
+ return result if @server.async != false
84
+ body2 = result.clone
85
+ body = body.merge(body2)
86
+ body = @body.merge(body)
87
+ assign_attributes(body)
88
+ return return_directly?(result) ? result : self
89
+ end
90
+
91
+ # === DELETE ===
92
+
93
+ def destroy(wait_for_sync: nil, if_match: false)
94
+ query = { waitForSync: wait_for_sync }
95
+ headers = {}
96
+ headers[:"If-Match"] = @body[:_rev] if if_match
97
+ result = @graph.request("DELETE", "vertex/#{@collection.name}/#{@body[:_key]}",
98
+ query: query, headers: headers)
99
+ return_delete(result)
100
+ end
101
+
102
+ # === WRONG ===
103
+
104
+ def from=(arg)
105
+ raise Arango::Error.new err: :you_cannot_assign_from_or_to_to_a_vertex
106
+ end
107
+ alias to= from=
108
+ alias to from=
109
+ alias to_r from=
110
+ alias from_r from=
111
+ end
112
+ end
@@ -0,0 +1,124 @@
1
+ # ==== DOCUMENT ====
2
+
3
+ module Arango
4
+ class View
5
+ include Arango::Helper::Satisfaction
6
+ include Arango::Helper::Return
7
+ include Arango::Helper::DatabaseAssignment
8
+
9
+ def initialize(database:, type: "arangosearch", name:, id: nil, cache_name: nil)
10
+ assign_database(database)
11
+ unless cache_name.nil?
12
+ @cache_name = cache_name
13
+ @server.cache.save(:view, cache_name, self)
14
+ end
15
+ satisfy_category?(type, ["arangosearch"])
16
+ @type = type
17
+ @name = name
18
+ @links = {}
19
+ @id = id
20
+ end
21
+
22
+ # === DEFINE ===
23
+
24
+ attr_reader :type, :links, :database, :cache_name
25
+ attr_accessor :id, :name
26
+
27
+ def type=(type)
28
+ satisfy_category?(type, ["arangosearch"])
29
+ @type = type
30
+ end
31
+ alias assign_type type=
32
+
33
+ def add_link(collection:, analyzers: nil, fields: {}, include_all_fields: nil, track_list_positions: nil, store_values: nil)
34
+ satisfy_class?(collection, [Arango::Collection, String])
35
+ collection_name = collection.is_a?(String) ? collection : collection.name
36
+ satisfy_category?(store_values, ["none", "id", nil])
37
+ @links[collection_name] = {
38
+ analyzers: analyzers,
39
+ fields: fields,
40
+ includeAllFields: include_all_fields,
41
+ trackListPositions: track_list_positions,
42
+ storeValues: store_values
43
+ }
44
+ @links[collection_name].delete_if{|k,v| v.nil?}
45
+ end
46
+
47
+ def to_h
48
+ {
49
+ name: @name,
50
+ id: @id,
51
+ type: @type,
52
+ links: @links,
53
+ cache_name: @cache_name,
54
+ database: @database.name
55
+ }.delete_if{|k,v| v.nil?}
56
+ end
57
+
58
+ def body=(result)
59
+ @body = result
60
+ @id = result[:id] || @id
61
+ @type = assign_type(result[:type] || @type)
62
+ @links = result[:links] || @links
63
+ @name = result[:name] || name
64
+ if @server.active_cache && @cache_name.nil?
65
+ @cache_name = "#{@database.name}/#{@id}"
66
+ @server.cache.save(:task, @cache_name, self)
67
+ end
68
+ end
69
+ alias assign_attributes body=
70
+
71
+ # === COMMANDS ===
72
+
73
+ def retrieve
74
+ result = @database.request("GET", "_api/view/#{@name}")
75
+ return result.headers[:"x-arango-async-id"] if @server.async == :store
76
+ return_element(result)
77
+ end
78
+
79
+ def manage_properties(method, url, consolidation_interval_msec: nil, threshold: nil, segment_threshold: nil, cleanup_interval_step: nil)
80
+ body = {
81
+ properties: {
82
+ links: @links.empty? ? nil : @links,
83
+ consolidationIntervalMsec: consolidation_interval_msec,
84
+ consolidationPolicy: {
85
+ threshold: threshold,
86
+ segmentThreshold: segment_threshold
87
+ },
88
+ cleanupIntervalStep: cleanup_interval_step
89
+ }
90
+ }
91
+ if method == "POST"
92
+ body[:type] = @type
93
+ body[:name] = @name
94
+ end
95
+ body[:properties][:consolidationPolicy].delete_if{|k,v| v.nil?}
96
+ body[:properties].delete(:consolidationPolicy) if body[:properties][:consolidationPolicy].empty?
97
+ body[:properties].delete_if{|k,v| v.nil?}
98
+ body.delete(:properties) if body[:properties].empty?
99
+ body.delete_if{|k,v| v.nil?}
100
+ result = @database.request(method, url, body: body)
101
+ return_element(result)
102
+ end
103
+ private :manage_properties
104
+
105
+ def create(consolidation_interval_msec: nil, threshold: nil, segment_threshold: nil, cleanup_interval_step: nil)
106
+ manage_properties("POST", "_api/view", consolidation_interval_msec: consolidation_interval_msec, threshold: threshold, segment_threshold: segment_threshold, cleanup_interval_step: cleanup_interval_step)
107
+ end
108
+
109
+ def replace_properties(consolidation_interval_msec: nil, threshold: nil, segment_threshold: nil, cleanup_interval_step: nil)
110
+ manage_properties("PUT", "_api/view/#{@name}/properties", consolidation_interval_msec: consolidation_interval_msec, threshold: threshold, segment_threshold: segment_threshold, cleanup_interval_step: cleanup_interval_step)
111
+ end
112
+
113
+ def update_properties(consolidation_interval_msec: nil, threshold: nil, segment_threshold: nil, cleanup_interval_step: nil)
114
+ manage_properties("PATCH", "_api/view/#{@name}/properties", consolidation_interval_msec: consolidation_interval_msec, threshold: threshold, segment_threshold: segment_threshold, cleanup_interval_step: cleanup_interval_step)
115
+ end
116
+
117
+
118
+ def properties
119
+ @database.request("GET", "_api/view/#{@name}/properties")
120
+ end
121
+
122
+
123
+ end
124
+ end
@@ -0,0 +1,25 @@
1
+ module Arango
2
+ module View
3
+ module Basics
4
+ def exist?
5
+
6
+ end
7
+ alias exists? exist?
8
+
9
+ def info
10
+
11
+
12
+ end
13
+
14
+ def rename(name:)
15
+ body = {name: name}
16
+ result = @database.request("PUT", "_api/view/#{@name}/rename", body: body)
17
+ return_element(result)
18
+ end#
19
+
20
+ def drop
21
+ @database.request("DELETE", "_api/view/#{@name}", key: :result)
22
+ end
23
+ end
24
+ end
25
+ end
metadata ADDED
@@ -0,0 +1,296 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: arango-driver
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.5.0.alpha0
5
+ platform: ruby
6
+ authors:
7
+ - Stefano Martin
8
+ - Jan Biedermann
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2019-09-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '5.2'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '5.2'
28
+ - !ruby/object:Gem::Dependency
29
+ name: isomorfeus-redux
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: 4.0.14
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: 4.0.14
42
+ - !ruby/object:Gem::Dependency
43
+ name: oj
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: 3.9.0
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 3.9.0
56
+ - !ruby/object:Gem::Dependency
57
+ name: opal
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 1.0.0
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 1.0.0
70
+ - !ruby/object:Gem::Dependency
71
+ name: typhoeus
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: 1.3.1
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: 1.3.1
84
+ - !ruby/object:Gem::Dependency
85
+ name: method_source
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :runtime
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: parser
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :runtime
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: unparser
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: opal-webpack-loader
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: 0.9.6
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: 0.9.6
140
+ - !ruby/object:Gem::Dependency
141
+ name: rake
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: rspec
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: 3.8.0
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: 3.8.0
168
+ - !ruby/object:Gem::Dependency
169
+ name: simplecov
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: 0.17.0
175
+ type: :development
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: 0.17.0
182
+ - !ruby/object:Gem::Dependency
183
+ name: yard
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: 0.9.20
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - "~>"
194
+ - !ruby/object:Gem::Version
195
+ version: 0.9.20
196
+ description: Ruby driver for ArangoDB's HTTP API
197
+ email:
198
+ - jan@kursator.de
199
+ executables: []
200
+ extensions: []
201
+ extra_rdoc_files: []
202
+ files:
203
+ - LICENSE
204
+ - README.md
205
+ - arango_opal.js
206
+ - lib/arango-driver.rb
207
+ - lib/arango.rb
208
+ - lib/arango/aql.rb
209
+ - lib/arango/collection.rb
210
+ - lib/arango/collection/documents.rb
211
+ - lib/arango/collection/edges.rb
212
+ - lib/arango/collection/importing.rb
213
+ - lib/arango/collection/indexes.rb
214
+ - lib/arango/collection/replication.rb
215
+ - lib/arango/collection/user.rb
216
+ - lib/arango/cursor.rb
217
+ - lib/arango/database.rb
218
+ - lib/arango/database/analyzer.rb
219
+ - lib/arango/database/aql_functions.rb
220
+ - lib/arango/database/aql_queries.rb
221
+ - lib/arango/database/aql_query_cache.rb
222
+ - lib/arango/database/collections.rb
223
+ - lib/arango/database/foxx_services.rb
224
+ - lib/arango/database/graph_access.rb
225
+ - lib/arango/database/http_route.rb
226
+ - lib/arango/database/replication.rb
227
+ - lib/arango/database/stream_transactions.rb
228
+ - lib/arango/database/tasks.rb
229
+ - lib/arango/database/transactions.rb
230
+ - lib/arango/database/user.rb
231
+ - lib/arango/database/view_access.rb
232
+ - lib/arango/document.rb
233
+ - lib/arango/edge.rb
234
+ - lib/arango/error.rb
235
+ - lib/arango/error_db.rb
236
+ - lib/arango/foxx.rb
237
+ - lib/arango/graph.rb
238
+ - lib/arango/graph/basics.rb
239
+ - lib/arango/graph/edge_access.rb
240
+ - lib/arango/graph/vertex_access.rb
241
+ - lib/arango/helper/collection_assignment.rb
242
+ - lib/arango/helper/database_assignment.rb
243
+ - lib/arango/helper/request_method.rb
244
+ - lib/arango/helper/return.rb
245
+ - lib/arango/helper/satisfaction.rb
246
+ - lib/arango/helper/server_assignment.rb
247
+ - lib/arango/helper/traversal.rb
248
+ - lib/arango/index.rb
249
+ - lib/arango/replication.rb
250
+ - lib/arango/request.rb
251
+ - lib/arango/request_batch.rb
252
+ - lib/arango/result.rb
253
+ - lib/arango/search_view.rb
254
+ - lib/arango/server.rb
255
+ - lib/arango/server/administration.rb
256
+ - lib/arango/server/agency.rb
257
+ - lib/arango/server/async.rb
258
+ - lib/arango/server/batch.rb
259
+ - lib/arango/server/config.rb
260
+ - lib/arango/server/databases.rb
261
+ - lib/arango/server/monitoring.rb
262
+ - lib/arango/server/opal_support.rb
263
+ - lib/arango/server/tasks.rb
264
+ - lib/arango/server/user.rb
265
+ - lib/arango/task.rb
266
+ - lib/arango/transaction.rb
267
+ - lib/arango/traversal.rb
268
+ - lib/arango/user.rb
269
+ - lib/arango/version.rb
270
+ - lib/arango/vertex.rb
271
+ - lib/arango/view.rb
272
+ - lib/arango/view/basics.rb
273
+ homepage: https://github.com/isomorfeus/arango-driver
274
+ licenses:
275
+ - MIT
276
+ metadata: {}
277
+ post_install_message:
278
+ rdoc_options: []
279
+ require_paths:
280
+ - lib
281
+ required_ruby_version: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ">="
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ required_rubygems_version: !ruby/object:Gem::Requirement
287
+ requirements:
288
+ - - ">"
289
+ - !ruby/object:Gem::Version
290
+ version: 1.3.1
291
+ requirements: []
292
+ rubygems_version: 3.0.6
293
+ signing_key:
294
+ specification_version: 4
295
+ summary: A simple ruby client for ArangoDB >= 3.5
296
+ test_files: []