Class: Arango::Foxx
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
-
#commit(body:, replace: nil) ⇒ Object
-
#create(body: @body, type: @type, development: @development, setup: @setup, legacy: @legacy) ⇒ Object
-
#destroy(teardown: @teardown) ⇒ Object
-
#disableDevelopment ⇒ Object
-
#download(path:, warning: @server.warning) ⇒ Object
-
#enableDevelopment ⇒ Object
-
#initialize(database:, body: {}, mount:, development: nil, legacy: nil, provides: nil, name: nil, version: nil, type: "application/json", setup: nil, teardown: nil, cache_name: nil) ⇒ Foxx
constructor
-
#readme ⇒ Object
-
#replace(body: @body, type: @type, teardown: @teardown, setup: @setup, legacy: @legacy) ⇒ Object
-
#replaceConfiguration(body:) ⇒ Object
-
#replaceDependencies(body:) ⇒ Object
-
#retrieve ⇒ Object
ACTIONS ===.
-
#retrieveConfiguration ⇒ Object
CONFIGURATION ===.
-
#retrieveDependencies ⇒ Object
DEPENDENCY ===.
-
#run_script(name:, body: {}) ⇒ Object
-
#scripts ⇒ Object
MISCELLANEOUS.
-
#swagger ⇒ Object
-
#tests(reporter: nil, idiomatic: nil) ⇒ Object
-
#to_h ⇒ Object
TO HASH ===.
-
#update(body: @body, type: @type, teardown: @teardown, setup: @setup, legacy: @legacy) ⇒ Object
-
#updateConfiguration(body:) ⇒ Object
-
#updateDependencies(body:) ⇒ Object
#database=
#return_delete, #return_directly?, #return_element
#satisfy_category?, #satisfy_class?, #warning_deprecated
Constructor Details
#initialize(database:, body: {}, mount:, development: nil, legacy: nil, provides: nil, name: nil, version: nil, type: "application/json", setup: nil, teardown: nil, cache_name: nil) ⇒ Foxx
Returns a new instance of Foxx.
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/Foxx.rb', line 30
def initialize(database:, body: {}, mount:, development: nil, legacy: nil,
provides: nil, name: nil, version: nil, type: "application/json",
setup: nil, teardown: nil, cache_name: nil)
assign_database(database)
unless cache_name.nil?
@cache_name = cache_name
@server.cache.save(:foxx, cache_name, self)
end
assign_attributes(body)
assign_type(type)
@mount ||= mount
@development ||= development
@setup ||= setup
@legacy ||= legacy
@provides ||= provides
@name ||= name
@version ||= version
@teardown ||= teardown
end
|
Instance Attribute Details
#body ⇒ Object
52
53
54
|
# File 'lib/Foxx.rb', line 52
def body
@body
end
|
#cache_name ⇒ Object
52
53
54
|
# File 'lib/Foxx.rb', line 52
def cache_name
@cache_name
end
|
#database ⇒ Object
52
53
54
|
# File 'lib/Foxx.rb', line 52
def database
@database
end
|
#development ⇒ Object
Returns the value of attribute development.
53
54
55
|
# File 'lib/Foxx.rb', line 53
def development
@development
end
|
#legacy ⇒ Object
Returns the value of attribute legacy.
53
54
55
|
# File 'lib/Foxx.rb', line 53
def legacy
@legacy
end
|
#mount ⇒ Object
Returns the value of attribute mount.
53
54
55
|
# File 'lib/Foxx.rb', line 53
def mount
@mount
end
|
#name ⇒ Object
Returns the value of attribute name.
53
54
55
|
# File 'lib/Foxx.rb', line 53
def name
@name
end
|
#provides ⇒ Object
Returns the value of attribute provides.
53
54
55
|
# File 'lib/Foxx.rb', line 53
def provides
@provides
end
|
#server ⇒ Object
52
53
54
|
# File 'lib/Foxx.rb', line 52
def server
@server
end
|
#setup ⇒ Object
Returns the value of attribute setup.
53
54
55
|
# File 'lib/Foxx.rb', line 53
def setup
@setup
end
|
#teardown ⇒ Object
Returns the value of attribute teardown.
53
54
55
|
# File 'lib/Foxx.rb', line 53
def teardown
@teardown
end
|
#type ⇒ Object
52
53
54
|
# File 'lib/Foxx.rb', line 52
def type
@type
end
|
#version ⇒ Object
Returns the value of attribute version.
53
54
55
|
# File 'lib/Foxx.rb', line 53
def version
@version
end
|
Class Method Details
.new(*args) ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/Foxx.rb', line 9
def self.new(*args)
hash = args[0]
super unless hash.is_a?(Hash)
database = hash[:database]
if database.is_a?(Arango::Database) && database.server.active_cache && !hash[:mount].nil?
cache_name = "#{database.name}/#{hash[:mount]}"
cached = database.server.cache.cache.dig(:foxx, cache_name)
if cached.nil?
hash[:cache_name] = cache_name
return super
else
body = hash[:body] || {}
[:mount, :development, :legacy, :provides, :name, :version,
:type, :setup, :teardown].each{|k| body[k] ||= hash[k]}
cached.assign_attributes(body)
return cached
end
end
super
end
|
Instance Method Details
#commit(body:, replace: nil) ⇒ Object
272
273
274
275
|
# File 'lib/Foxx.rb', line 272
def commit(body:, replace: nil)
query = {"replace": replace}
@database.request("POST", "_api/foxx/commit", body: body, query: query)
end
|
#create(body: @body, type: @type, development: @development, setup: @setup, legacy: @legacy) ⇒ Object
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
# File 'lib/Foxx.rb', line 120
def create(body: @body, type: @type, development: @development,
setup: @setup, legacy: @legacy)
= {"Accept": type}
skip_to_json = type != "application/json"
query = {
"mount": @mount,
"setup": setup,
"development ": development ,
"legacy": legacy
}
result = @database.request("POST",
url: "_api/foxx", body: body, headers: ,
skip_to_json: skip_to_json, query: query)
return_foxx(result)
end
|
#destroy(teardown: @teardown) ⇒ Object
136
137
138
139
140
141
142
143
|
# File 'lib/Foxx.rb', line 136
def destroy(teardown: @teardown)
query = {
"mount": @mount,
"teardown": teardown
}
result = @database.request("DELETE", "_api/foxx/service", query: query)
return_foxx(result)
end
|
#disableDevelopment ⇒ Object
250
251
252
253
|
# File 'lib/Foxx.rb', line 250
def disableDevelopment
query = {"mount": @mount}
@database.request("DELETE", "_api/foxx/development", query: query)
end
|
#download(path:, warning: @server.warning) ⇒ Object
265
266
267
268
269
270
|
# File 'lib/Foxx.rb', line 265
def download(path:, warning: @server.warning)
query = {"mount": @mount}
@server.download("POST", "_db/#{@database.name}/_api/foxx/download",
path: path, query: query)
puts "File saved in #{path}" if warning
end
|
#enableDevelopment ⇒ Object
245
246
247
248
|
# File 'lib/Foxx.rb', line 245
def enableDevelopment
query = {"mount": @mount}
@database.request("POST", "_api/foxx/development", query: query)
end
|
#readme ⇒ Object
255
256
257
258
|
# File 'lib/Foxx.rb', line 255
def readme
query = {"mount": @mount}
@database.request("GET", "_api/foxx/readme", query: query)
end
|
#replace(body: @body, type: @type, teardown: @teardown, setup: @setup, legacy: @legacy) ⇒ Object
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
# File 'lib/Foxx.rb', line 145
def replace(body: @body, type: @type, teardown: @teardown, setup: @setup,
legacy: @legacy)
= {"Accept": type}
skip_to_json = type != "application/json"
query = {
"mount": @mount,
"setup": setup,
"development ": development,
"legacy": legacy
}
result = @database.request("PUT", "_api/foxx/service", body: body,
headers: , skip_to_json: skip_to_json, query: query)
return_foxx(result)
end
|
#replaceConfiguration(body:) ⇒ Object
190
191
192
193
194
|
# File 'lib/Foxx.rb', line 190
def replaceConfiguration(body:)
query = {"mount": @mount}
result = @database.request("PUT", "_api/foxx/configuration", query: query, body: body)
return_foxx(result, :configuration)
end
|
#replaceDependencies(body:) ⇒ Object
210
211
212
213
214
|
# File 'lib/Foxx.rb', line 210
def replaceDependencies(body:)
query = {"mount": @mount}
result = @database.request("PUT", "_api/foxx/dependencies", query: query, body: body)
return_foxx(result, :dependencies)
end
|
#retrieve ⇒ Object
114
115
116
117
118
|
# File 'lib/Foxx.rb', line 114
def retrieve
query = {"mount": @mount}
result = @database.request("GET", url: "_api/foxx/service")
return_foxx(result)
end
|
#retrieveConfiguration ⇒ Object
178
179
180
181
182
|
# File 'lib/Foxx.rb', line 178
def retrieveConfiguration
query = {"mount": @mount}
result = @database.request("GET", "_api/foxx/configuration", query: query)
return_foxx(result, :configuration)
end
|
#retrieveDependencies ⇒ Object
198
199
200
201
202
|
# File 'lib/Foxx.rb', line 198
def retrieveDependencies
query = {"mount": @mount}
result = @database.request("GET", "_api/foxx/dependencies", query: query)
return_foxx(result, :dependencies)
end
|
#run_script(name:, body: {}) ⇒ Object
223
224
225
226
|
# File 'lib/Foxx.rb', line 223
def run_script(name:, body: {})
query = {"mount": @mount}
@database.request("POST", "_api/foxx/scripts/#{name}", query: query, body: body)
end
|
#scripts ⇒ Object
218
219
220
221
|
# File 'lib/Foxx.rb', line 218
def scripts
query = {"mount": @mount}
@database.request("GET", "_api/foxx/scripts", query: query)
end
|
#swagger ⇒ Object
260
261
262
263
|
# File 'lib/Foxx.rb', line 260
def swagger
query = {"mount": @mount}
@database.request("GET", "_api/foxx/swagger", query: query)
end
|
#tests(reporter: nil, idiomatic: nil) ⇒ Object
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
|
# File 'lib/Foxx.rb', line 228
def tests(reporter: nil, idiomatic: nil)
satisfy_category?(reporter, [nil, "default", "suite", "stream", "xunit", "tap"])
= {}
[:"Content-Type"] = case reporter
when "stream"
"application/x-ldjson"
when "tap"
"text/plain, text/*"
when "xunit"
"application/xml, text/xml"
else
nil
end
query = {"mount": @mount}
@database.request("GET", "_api/foxx/scripts", query: query, headers: )
end
|
#to_h ⇒ Object
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/Foxx.rb', line 83
def to_h
{
"name": @name,
"version": @version,
"mount": @mount,
"development": @development,
"legacy": @legacy,
"provides": @provides,
"type": @type,
"teardown": @teardown,
"cache_name": @cache_name,
"database": @database.name
}.delete_if{|k,v| v.nil?}
end
|
#update(body: @body, type: @type, teardown: @teardown, setup: @setup, legacy: @legacy) ⇒ Object
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
|
# File 'lib/Foxx.rb', line 160
def update(body: @body, type: @type, teardown: @teardown,
setup: @setup, legacy: @legacy)
assign_type(type)
= {"Accept": type}
skip_to_json = @type != "application/json"
query = {
"mount": @mount,
"setup": setup,
"development ": development,
"legacy": legacy
}
result = @database.request("PATCH", "_api/foxx/service", body: body,
headers: , skip_to_json: skip_to_json, query: query)
return_foxx(result)
end
|
#updateConfiguration(body:) ⇒ Object
184
185
186
187
188
|
# File 'lib/Foxx.rb', line 184
def updateConfiguration(body:)
query = {"mount": @mount}
result = @database.request("PATCH", "_api/foxx/configuration", query: query, body: body)
return_foxx(result, :configuration)
end
|
#updateDependencies(body:) ⇒ Object
204
205
206
207
208
|
# File 'lib/Foxx.rb', line 204
def updateDependencies(body:)
query = {"mount": @mount}
result = @database.request("PATCH", "_api/foxx/dependencies", query: query, body: body)
return_foxx(result, :dependencies)
end
|