files.com 1.0.33 → 1.0.34
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CONTRIBUTORS +1 -0
- data/Gemfile +3 -1
- data/_VERSION +1 -1
- data/lib/files.com.rb +1 -0
- data/lib/files.com/api_client.rb +5 -1
- data/lib/files.com/list.rb +95 -0
- data/lib/files.com/models/api_key.rb +0 -1
- data/lib/files.com/models/automation.rb +0 -1
- data/lib/files.com/models/behavior.rb +1 -3
- data/lib/files.com/models/bundle.rb +0 -1
- data/lib/files.com/models/dns_record.rb +0 -1
- data/lib/files.com/models/file.rb +9 -8
- data/lib/files.com/models/file_action.rb +3 -3
- data/lib/files.com/models/file_comment.rb +1 -2
- data/lib/files.com/models/folder.rb +4 -3
- data/lib/files.com/models/group.rb +0 -1
- data/lib/files.com/models/group_user.rb +0 -1
- data/lib/files.com/models/history.rb +0 -5
- data/lib/files.com/models/history_export.rb +0 -1
- data/lib/files.com/models/invoice.rb +0 -1
- data/lib/files.com/models/ip_address.rb +0 -1
- data/lib/files.com/models/lock.rb +3 -4
- data/lib/files.com/models/message.rb +0 -1
- data/lib/files.com/models/message_comment.rb +0 -1
- data/lib/files.com/models/message_comment_reaction.rb +0 -1
- data/lib/files.com/models/message_reaction.rb +0 -1
- data/lib/files.com/models/notification.rb +0 -1
- data/lib/files.com/models/payment.rb +0 -1
- data/lib/files.com/models/permission.rb +0 -1
- data/lib/files.com/models/project.rb +0 -1
- data/lib/files.com/models/public_key.rb +0 -1
- data/lib/files.com/models/remote_server.rb +0 -1
- data/lib/files.com/models/request.rb +1 -3
- data/lib/files.com/models/sso_strategy.rb +0 -1
- data/lib/files.com/models/style.rb +3 -3
- data/lib/files.com/models/usage_daily_snapshot.rb +0 -1
- data/lib/files.com/models/usage_snapshot.rb +0 -1
- data/lib/files.com/models/user.rb +0 -1
- data/lib/files.com/models/user_cipher_use.rb +0 -1
- data/spec/list_spec.rb +192 -0
- data/spec/models/file_spec.rb +36 -0
- data/spec/models/folder_spec.rb +40 -0
- data/spec/spec_helper.rb +36 -0
- data/test.sh +8 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95f6118254b939d113400ea9575b5f352f957de2760b911d4cbddca2daaf2e7b
|
4
|
+
data.tar.gz: ff0ebe62222940de1aac19014c8f88c23f3bf27a279f01982c0afb237a695849
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1360c574244c44858bdeb03d2b83e3d5c0f05a2f4bc313fe3d78317188dc1fd0982e69848e41b5e408c0b90766786417753185b0af1d44e7c870be8f9ab843a1
|
7
|
+
data.tar.gz: 1225e3cc3ac3c3a10448eea2b01ba048f0b54a6f93f6faec6114fda68cd9625365515853844d1416393012a75d0defc691b5950c69507a243e787b3d63451a85
|
data/CONTRIBUTORS
CHANGED
data/Gemfile
CHANGED
data/_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.34
|
data/lib/files.com.rb
CHANGED
data/lib/files.com/api_client.rb
CHANGED
@@ -132,6 +132,10 @@ module Files
|
|
132
132
|
end
|
133
133
|
end
|
134
134
|
|
135
|
+
def cursor
|
136
|
+
@last_response.http_headers["x-files-cursor"]
|
137
|
+
end
|
138
|
+
|
135
139
|
private def api_url(url = "", base_url = nil)
|
136
140
|
(base_url || Files.base_url) + "/api/rest/v1" + url
|
137
141
|
end
|
@@ -232,7 +236,7 @@ module Files
|
|
232
236
|
http_headers: resp.http_headers,
|
233
237
|
http_status: resp.http_status,
|
234
238
|
json_body: resp.data,
|
235
|
-
code: error_data[:code],
|
239
|
+
code: error_data[:code] || resp.http_status,
|
236
240
|
}
|
237
241
|
|
238
242
|
case resp.http_status
|
@@ -0,0 +1,95 @@
|
|
1
|
+
module Files
|
2
|
+
class List
|
3
|
+
include Enumerable
|
4
|
+
|
5
|
+
def initialize(resource_wrapper, params, current_response = nil, current_options = nil, &request_page)
|
6
|
+
@resource_wrapper = resource_wrapper
|
7
|
+
@params = params
|
8
|
+
@current_response = current_response
|
9
|
+
@current_options = current_options
|
10
|
+
@request_page = request_page
|
11
|
+
end
|
12
|
+
|
13
|
+
# Iterates through each resource in all pages, making additional fetches to
|
14
|
+
# the API as necessary.
|
15
|
+
#
|
16
|
+
# Note that this method will make as many API calls as necessary to fetch
|
17
|
+
# all resources. For more granular control, please see +each+ and
|
18
|
+
# +next_page+.
|
19
|
+
def auto_paging_each
|
20
|
+
return enum_for(:auto_paging_each).lazy unless block_given?
|
21
|
+
|
22
|
+
loop do
|
23
|
+
page = next_page
|
24
|
+
break unless page.valid_response?
|
25
|
+
|
26
|
+
page.set_cursor
|
27
|
+
|
28
|
+
page.wrap_data do |data|
|
29
|
+
yield data
|
30
|
+
end
|
31
|
+
break if page.on_last_page?
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# Iterates through each resource in the current page.
|
36
|
+
#
|
37
|
+
# Note that this method makes no effort to fetch a new page when it gets to
|
38
|
+
# the end of the current page's resources. See also +auto_paging_each+.
|
39
|
+
def each(&block)
|
40
|
+
page = current_page
|
41
|
+
return [] unless page.valid_response?
|
42
|
+
|
43
|
+
page.set_cursor
|
44
|
+
page.wrap_data { |data| block.call data }
|
45
|
+
end
|
46
|
+
|
47
|
+
# Fetches the next page of resources (if there is one).
|
48
|
+
#
|
49
|
+
# This method will try to respect the per_page set. If none
|
50
|
+
# was given, the default per_page will be used.
|
51
|
+
def next_page
|
52
|
+
self.class.new(resource_wrapper, params, *request_page.call, &request_page)
|
53
|
+
end
|
54
|
+
|
55
|
+
protected
|
56
|
+
|
57
|
+
attr_reader :resource_wrapper,
|
58
|
+
:params,
|
59
|
+
:request_page
|
60
|
+
|
61
|
+
def current_page
|
62
|
+
@current_page ||= if @current_response and @current_options
|
63
|
+
self
|
64
|
+
else
|
65
|
+
next_page
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def data
|
70
|
+
@current_response.data
|
71
|
+
end
|
72
|
+
|
73
|
+
def wrap_data
|
74
|
+
data.map do |object|
|
75
|
+
yield resource_wrapper.new(object, @current_options)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def set_cursor
|
80
|
+
params[:cursor] ||= @current_options[:client].cursor
|
81
|
+
end
|
82
|
+
|
83
|
+
def cursor
|
84
|
+
params[:cursor]
|
85
|
+
end
|
86
|
+
|
87
|
+
def valid_response?
|
88
|
+
@current_response.http_status == 200
|
89
|
+
end
|
90
|
+
|
91
|
+
def on_last_page?
|
92
|
+
!cursor or (data.count < params[:per_page])
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
@@ -147,7 +147,6 @@ module Files
|
|
147
147
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
148
148
|
|
149
149
|
response, options = Api.send_request("/api_keys", :get, params, options)
|
150
|
-
response.data.map { |object| ApiKey.new(object, options) }
|
151
150
|
end
|
152
151
|
|
153
152
|
def self.all(params = {}, options = {})
|
@@ -191,7 +191,6 @@ module Files
|
|
191
191
|
raise InvalidParameterError.new("Bad parameter: automation must be an String") if params.dig(:automation) and !params.dig(:automation).is_a?(String)
|
192
192
|
|
193
193
|
response, options = Api.send_request("/automations", :get, params, options)
|
194
|
-
response.data.map { |object| Automation.new(object, options) }
|
195
194
|
end
|
196
195
|
|
197
196
|
def self.all(params = {}, options = {})
|
@@ -112,7 +112,6 @@ module Files
|
|
112
112
|
raise InvalidParameterError.new("Bad parameter: behavior must be an String") if params.dig(:behavior) and !params.dig(:behavior).is_a?(String)
|
113
113
|
|
114
114
|
response, options = Api.send_request("/behaviors", :get, params, options)
|
115
|
-
response.data.map { |object| Behavior.new(object, options) }
|
116
115
|
end
|
117
116
|
|
118
117
|
def self.all(params = {}, options = {})
|
@@ -137,8 +136,7 @@ module Files
|
|
137
136
|
raise InvalidParameterError.new("Bad parameter: behavior must be an String") if params.dig(:behavior) and !params.dig(:behavior).is_a?(String)
|
138
137
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
139
138
|
|
140
|
-
response, options = Api.send_request("/behaviors/folders/#{
|
141
|
-
response.data.map { |object| Behavior.new(object, options) }
|
139
|
+
response, options = Api.send_request("/behaviors/folders/#{URI.encode_www_form_component(params[:path])}", :get, params, options)
|
142
140
|
end
|
143
141
|
|
144
142
|
# Parameters:
|
@@ -166,7 +166,6 @@ module Files
|
|
166
166
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
167
167
|
|
168
168
|
response, options = Api.send_request("/bundles", :get, params, options)
|
169
|
-
response.data.map { |object| Bundle.new(object, options) }
|
170
169
|
end
|
171
170
|
|
172
171
|
def self.all(params = {}, options = {})
|
@@ -39,7 +39,6 @@ module Files
|
|
39
39
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
40
40
|
|
41
41
|
response, options = Api.send_request("/dns_records", :get, params, options)
|
42
|
-
response.data.map { |object| DnsRecord.new(object, options) }
|
43
42
|
end
|
44
43
|
|
45
44
|
def self.all(params = {}, options = {})
|
@@ -45,7 +45,7 @@ module Files
|
|
45
45
|
def self.exist?(path, options = {})
|
46
46
|
find(path, {}, options)
|
47
47
|
true
|
48
|
-
rescue
|
48
|
+
rescue Error => e
|
49
49
|
if e.code == 404
|
50
50
|
false
|
51
51
|
else
|
@@ -90,8 +90,8 @@ module Files
|
|
90
90
|
new(path).mtime
|
91
91
|
end
|
92
92
|
|
93
|
-
def self.open(path, mode = "r", &block)
|
94
|
-
file = new(path, mode)
|
93
|
+
def self.open(path, mode = "r", options={}, &block)
|
94
|
+
file = new(path, mode, options)
|
95
95
|
if block
|
96
96
|
yield file
|
97
97
|
file.close
|
@@ -187,7 +187,8 @@ module Files
|
|
187
187
|
|
188
188
|
def initialize(*args)
|
189
189
|
@attributes = (args[0].is_a?(Hash) && args[0]) || {}
|
190
|
-
@options = (args[1].is_a?(Hash) && args[1])
|
190
|
+
@options = (args[1].is_a?(Hash) && args[1])
|
191
|
+
@options ||= (args[2].is_a?(Hash) && args[2]) || {}
|
191
192
|
@attributes[:path] = args[0] if args[0].is_a?(String)
|
192
193
|
@mode = args[1] || 'r' if args[1].is_a?(String)
|
193
194
|
@write_io = StringIO.new
|
@@ -925,7 +926,7 @@ module Files
|
|
925
926
|
raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
|
926
927
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
927
928
|
|
928
|
-
response, options = Api.send_request("/files/#{
|
929
|
+
response, options = Api.send_request("/files/#{URI.encode_www_form_component(params[:path])}", :get, params, options)
|
929
930
|
File.new(response.data, options)
|
930
931
|
end
|
931
932
|
|
@@ -960,7 +961,7 @@ module Files
|
|
960
961
|
raise InvalidParameterError.new("Bad parameter: structure must be an String") if params.dig(:structure) and !params.dig(:structure).is_a?(String)
|
961
962
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
962
963
|
|
963
|
-
response, options = Api.send_request("/files/#{
|
964
|
+
response, options = Api.send_request("/files/#{URI.encode_www_form_component(params[:path])}", :post, params, options)
|
964
965
|
File.new(response.data, options)
|
965
966
|
end
|
966
967
|
|
@@ -975,7 +976,7 @@ module Files
|
|
975
976
|
raise InvalidParameterError.new("Bad parameter: priority_color must be an String") if params.dig(:priority_color) and !params.dig(:priority_color).is_a?(String)
|
976
977
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
977
978
|
|
978
|
-
response, options = Api.send_request("/files/#{
|
979
|
+
response, options = Api.send_request("/files/#{URI.encode_www_form_component(params[:path])}", :patch, params, options)
|
979
980
|
File.new(response.data, options)
|
980
981
|
end
|
981
982
|
|
@@ -987,7 +988,7 @@ module Files
|
|
987
988
|
raise InvalidParameterError.new("Bad parameter: path must be an String") if params.dig(:path) and !params.dig(:path).is_a?(String)
|
988
989
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
989
990
|
|
990
|
-
response, _options = Api.send_request("/files/#{
|
991
|
+
response, _options = Api.send_request("/files/#{URI.encode_www_form_component(params[:path])}", :delete, params, options)
|
991
992
|
response.data
|
992
993
|
end
|
993
994
|
|
@@ -76,7 +76,7 @@ module Files
|
|
76
76
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
77
77
|
raise MissingParameterError.new("Parameter missing: destination") unless params.dig(:destination)
|
78
78
|
|
79
|
-
response, _options = Api.send_request("/file_actions/copy/#{
|
79
|
+
response, _options = Api.send_request("/file_actions/copy/#{URI.encode_www_form_component(params[:path])}", :post, params, options)
|
80
80
|
response.data
|
81
81
|
end
|
82
82
|
|
@@ -92,7 +92,7 @@ module Files
|
|
92
92
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
93
93
|
raise MissingParameterError.new("Parameter missing: destination") unless params.dig(:destination)
|
94
94
|
|
95
|
-
response, _options = Api.send_request("/file_actions/move/#{
|
95
|
+
response, _options = Api.send_request("/file_actions/move/#{URI.encode_www_form_component(params[:path])}", :post, params, options)
|
96
96
|
response.data
|
97
97
|
end
|
98
98
|
|
@@ -115,7 +115,7 @@ module Files
|
|
115
115
|
raise InvalidParameterError.new("Bad parameter: restart must be an Integer") if params.dig(:restart) and !params.dig(:restart).is_a?(Integer)
|
116
116
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
117
117
|
|
118
|
-
response, options = Api.send_request("/file_actions/begin_upload/#{
|
118
|
+
response, options = Api.send_request("/file_actions/begin_upload/#{URI.encode_www_form_component(params[:path])}", :post, params, options)
|
119
119
|
FilePartUpload.new(response.data, options)
|
120
120
|
end
|
121
121
|
end
|
@@ -96,8 +96,7 @@ module Files
|
|
96
96
|
raise InvalidParameterError.new("Bad parameter: path must be an String") if params.dig(:path) and !params.dig(:path).is_a?(String)
|
97
97
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
98
98
|
|
99
|
-
response, options = Api.send_request("/file_comments/files/#{
|
100
|
-
response.data.map { |object| FileComment.new(object, options) }
|
99
|
+
response, options = Api.send_request("/file_comments/files/#{URI.encode_www_form_component(params[:path])}", :get, params, options)
|
101
100
|
end
|
102
101
|
|
103
102
|
# Parameters:
|
@@ -353,8 +353,9 @@ module Files
|
|
353
353
|
raise InvalidParameterError.new("Bad parameter: search must be an String") if params.dig(:search) and !params.dig(:search).is_a?(String)
|
354
354
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
355
355
|
|
356
|
-
|
357
|
-
|
356
|
+
List.new(File, params) do
|
357
|
+
Api.send_request("/folders/#{Addressable::URI.encode_component(params[:path])}", :get, params, options)
|
358
|
+
end
|
358
359
|
end
|
359
360
|
|
360
361
|
# Create folder
|
@@ -364,7 +365,7 @@ module Files
|
|
364
365
|
raise InvalidParameterError.new("Bad parameter: path must be an String") if params.dig(:path) and !params.dig(:path).is_a?(String)
|
365
366
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
366
367
|
|
367
|
-
response, options = Api.send_request("/folders/#{
|
368
|
+
response, options = Api.send_request("/folders/#{URI.encode_www_form_component(params[:path])}", :post, params, options)
|
368
369
|
File.new(response.data, options)
|
369
370
|
end
|
370
371
|
end
|
@@ -117,7 +117,6 @@ module Files
|
|
117
117
|
raise InvalidParameterError.new("Bad parameter: ids must be an String") if params.dig(:ids) and !params.dig(:ids).is_a?(String)
|
118
118
|
|
119
119
|
response, options = Api.send_request("/groups", :get, params, options)
|
120
|
-
response.data.map { |object| Group.new(object, options) }
|
121
120
|
end
|
122
121
|
|
123
122
|
def self.all(params = {}, options = {})
|
@@ -113,7 +113,6 @@ module Files
|
|
113
113
|
raise InvalidParameterError.new("Bad parameter: group_id must be an Integer") if params.dig(:group_id) and !params.dig(:group_id).is_a?(Integer)
|
114
114
|
|
115
115
|
response, options = Api.send_request("/group_users", :get, params, options)
|
116
|
-
response.data.map { |object| GroupUser.new(object, options) }
|
117
116
|
end
|
118
117
|
|
119
118
|
def self.all(params = {}, options = {})
|
@@ -95,7 +95,6 @@ module Files
|
|
95
95
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
96
96
|
|
97
97
|
response, options = Api.send_request("/history/files(/*path)", :get, params, options)
|
98
|
-
response.data.map { |object| Action.new(object, options) }
|
99
98
|
end
|
100
99
|
|
101
100
|
# Parameters:
|
@@ -119,7 +118,6 @@ module Files
|
|
119
118
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
120
119
|
|
121
120
|
response, options = Api.send_request("/history/folders(/*path)", :get, params, options)
|
122
|
-
response.data.map { |object| Action.new(object, options) }
|
123
121
|
end
|
124
122
|
|
125
123
|
# Parameters:
|
@@ -143,7 +141,6 @@ module Files
|
|
143
141
|
raise MissingParameterError.new("Parameter missing: user_id") unless params.dig(:user_id)
|
144
142
|
|
145
143
|
response, options = Api.send_request("/history/users/#{params[:user_id]}", :get, params, options)
|
146
|
-
response.data.map { |object| Action.new(object, options) }
|
147
144
|
end
|
148
145
|
|
149
146
|
# Parameters:
|
@@ -162,7 +159,6 @@ module Files
|
|
162
159
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
163
160
|
|
164
161
|
response, options = Api.send_request("/history/login", :get, params, options)
|
165
|
-
response.data.map { |object| Action.new(object, options) }
|
166
162
|
end
|
167
163
|
|
168
164
|
# Parameters:
|
@@ -181,7 +177,6 @@ module Files
|
|
181
177
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
182
178
|
|
183
179
|
response, options = Api.send_request("/history", :get, params, options)
|
184
|
-
response.data.map { |object| Action.new(object, options) }
|
185
180
|
end
|
186
181
|
|
187
182
|
def self.all(params = {}, options = {})
|
@@ -260,7 +260,6 @@ module Files
|
|
260
260
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
261
261
|
|
262
262
|
response, options = Api.send_request("/history_exports", :get, params, options)
|
263
|
-
response.data.map { |object| HistoryExport.new(object, options) }
|
264
263
|
end
|
265
264
|
|
266
265
|
def self.all(params = {}, options = {})
|
@@ -89,7 +89,6 @@ module Files
|
|
89
89
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
90
90
|
|
91
91
|
response, options = Api.send_request("/invoices", :get, params, options)
|
92
|
-
response.data.map { |object| AccountLineItem.new(object, options) }
|
93
92
|
end
|
94
93
|
|
95
94
|
def self.all(params = {}, options = {})
|
@@ -39,7 +39,6 @@ module Files
|
|
39
39
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
40
40
|
|
41
41
|
response, options = Api.send_request("/ip_addresses", :get, params, options)
|
42
|
-
response.data.map { |object| IpAddress.new(object, options) }
|
43
42
|
end
|
44
43
|
|
45
44
|
def self.all(params = {}, options = {})
|
@@ -147,8 +147,7 @@ module Files
|
|
147
147
|
raise InvalidParameterError.new("Bad parameter: path must be an String") if params.dig(:path) and !params.dig(:path).is_a?(String)
|
148
148
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
149
149
|
|
150
|
-
response, options = Api.send_request("/locks/#{
|
151
|
-
response.data.map { |object| Lock.new(object, options) }
|
150
|
+
response, options = Api.send_request("/locks/#{URI.encode_www_form_component(params[:path])}", :get, params, options)
|
152
151
|
end
|
153
152
|
|
154
153
|
# Create Lock
|
@@ -162,7 +161,7 @@ module Files
|
|
162
161
|
raise InvalidParameterError.new("Bad parameter: timeout must be an Integer") if params.dig(:timeout) and !params.dig(:timeout).is_a?(Integer)
|
163
162
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
164
163
|
|
165
|
-
response, options = Api.send_request("/locks/#{
|
164
|
+
response, options = Api.send_request("/locks/#{URI.encode_www_form_component(params[:path])}", :post, params, options)
|
166
165
|
Lock.new(response.data, options)
|
167
166
|
end
|
168
167
|
|
@@ -176,7 +175,7 @@ module Files
|
|
176
175
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
177
176
|
raise MissingParameterError.new("Parameter missing: token") unless params.dig(:token)
|
178
177
|
|
179
|
-
response, _options = Api.send_request("/locks/#{
|
178
|
+
response, _options = Api.send_request("/locks/#{URI.encode_www_form_component(params[:path])}", :delete, params, options)
|
180
179
|
response.data
|
181
180
|
end
|
182
181
|
|
@@ -121,7 +121,6 @@ module Files
|
|
121
121
|
raise MissingParameterError.new("Parameter missing: project_id") unless params.dig(:project_id)
|
122
122
|
|
123
123
|
response, options = Api.send_request("/messages", :get, params, options)
|
124
|
-
response.data.map { |object| Message.new(object, options) }
|
125
124
|
end
|
126
125
|
|
127
126
|
def self.all(params = {}, options = {})
|
@@ -97,7 +97,6 @@ module Files
|
|
97
97
|
raise MissingParameterError.new("Parameter missing: message_id") unless params.dig(:message_id)
|
98
98
|
|
99
99
|
response, options = Api.send_request("/message_comments", :get, params, options)
|
100
|
-
response.data.map { |object| MessageComment.new(object, options) }
|
101
100
|
end
|
102
101
|
|
103
102
|
def self.all(params = {}, options = {})
|
@@ -74,7 +74,6 @@ module Files
|
|
74
74
|
raise MissingParameterError.new("Parameter missing: message_comment_id") unless params.dig(:message_comment_id)
|
75
75
|
|
76
76
|
response, options = Api.send_request("/message_comment_reactions", :get, params, options)
|
77
|
-
response.data.map { |object| MessageCommentReaction.new(object, options) }
|
78
77
|
end
|
79
78
|
|
80
79
|
def self.all(params = {}, options = {})
|
@@ -74,7 +74,6 @@ module Files
|
|
74
74
|
raise MissingParameterError.new("Parameter missing: message_id") unless params.dig(:message_id)
|
75
75
|
|
76
76
|
response, options = Api.send_request("/message_reactions", :get, params, options)
|
77
|
-
response.data.map { |object| MessageReaction.new(object, options) }
|
78
77
|
end
|
79
78
|
|
80
79
|
def self.all(params = {}, options = {})
|
@@ -169,7 +169,6 @@ module Files
|
|
169
169
|
raise InvalidParameterError.new("Bad parameter: group_id must be an Integer") if params.dig(:group_id) and !params.dig(:group_id).is_a?(Integer)
|
170
170
|
|
171
171
|
response, options = Api.send_request("/notifications", :get, params, options)
|
172
|
-
response.data.map { |object| Notification.new(object, options) }
|
173
172
|
end
|
174
173
|
|
175
174
|
def self.all(params = {}, options = {})
|
@@ -89,7 +89,6 @@ module Files
|
|
89
89
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
90
90
|
|
91
91
|
response, options = Api.send_request("/payments", :get, params, options)
|
92
|
-
response.data.map { |object| AccountLineItem.new(object, options) }
|
93
92
|
end
|
94
93
|
|
95
94
|
def self.all(params = {}, options = {})
|
@@ -130,7 +130,6 @@ module Files
|
|
130
130
|
raise InvalidParameterError.new("Bad parameter: user_id must be an String") if params.dig(:user_id) and !params.dig(:user_id).is_a?(String)
|
131
131
|
|
132
132
|
response, options = Api.send_request("/permissions", :get, params, options)
|
133
|
-
response.data.map { |object| Permission.new(object, options) }
|
134
133
|
end
|
135
134
|
|
136
135
|
def self.all(path, params = {}, options = {})
|
@@ -74,7 +74,6 @@ module Files
|
|
74
74
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
75
75
|
|
76
76
|
response, options = Api.send_request("/projects", :get, params, options)
|
77
|
-
response.data.map { |object| Project.new(object, options) }
|
78
77
|
end
|
79
78
|
|
80
79
|
def self.all(params = {}, options = {})
|
@@ -108,7 +108,6 @@ module Files
|
|
108
108
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
109
109
|
|
110
110
|
response, options = Api.send_request("/public_keys", :get, params, options)
|
111
|
-
response.data.map { |object| PublicKey.new(object, options) }
|
112
111
|
end
|
113
112
|
|
114
113
|
def self.all(params = {}, options = {})
|
@@ -258,7 +258,6 @@ module Files
|
|
258
258
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
259
259
|
|
260
260
|
response, options = Api.send_request("/remote_servers", :get, params, options)
|
261
|
-
response.data.map { |object| RemoteServer.new(object, options) }
|
262
261
|
end
|
263
262
|
|
264
263
|
def self.all(params = {}, options = {})
|
@@ -121,7 +121,6 @@ module Files
|
|
121
121
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
122
122
|
|
123
123
|
response, options = Api.send_request("/requests", :get, params, options)
|
124
|
-
response.data.map { |object| Request.new(object, options) }
|
125
124
|
end
|
126
125
|
|
127
126
|
def self.all(params = {}, options = {})
|
@@ -143,8 +142,7 @@ module Files
|
|
143
142
|
raise InvalidParameterError.new("Bad parameter: path must be an String") if params.dig(:path) and !params.dig(:path).is_a?(String)
|
144
143
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
145
144
|
|
146
|
-
response, options = Api.send_request("/requests/folders/#{
|
147
|
-
response.data.map { |object| Request.new(object, options) }
|
145
|
+
response, options = Api.send_request("/requests/folders/#{URI.encode_www_form_component(params[:path])}", :get, params, options)
|
148
146
|
end
|
149
147
|
|
150
148
|
# Create Request
|
@@ -129,7 +129,6 @@ module Files
|
|
129
129
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
130
130
|
|
131
131
|
response, options = Api.send_request("/sso_strategies", :get, params, options)
|
132
|
-
response.data.map { |object| SsoStrategy.new(object, options) }
|
133
132
|
end
|
134
133
|
|
135
134
|
def self.all(params = {}, options = {})
|
@@ -93,7 +93,7 @@ module Files
|
|
93
93
|
raise InvalidParameterError.new("Bad parameter: path must be an String") if params.dig(:path) and !params.dig(:path).is_a?(String)
|
94
94
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
95
95
|
|
96
|
-
response, options = Api.send_request("/styles/#{
|
96
|
+
response, options = Api.send_request("/styles/#{URI.encode_www_form_component(params[:path])}", :get, params, options)
|
97
97
|
Style.new(response.data, options)
|
98
98
|
end
|
99
99
|
|
@@ -110,7 +110,7 @@ module Files
|
|
110
110
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
111
111
|
raise MissingParameterError.new("Parameter missing: file") unless params.dig(:file)
|
112
112
|
|
113
|
-
response, options = Api.send_request("/styles/#{
|
113
|
+
response, options = Api.send_request("/styles/#{URI.encode_www_form_component(params[:path])}", :patch, params, options)
|
114
114
|
Style.new(response.data, options)
|
115
115
|
end
|
116
116
|
|
@@ -120,7 +120,7 @@ module Files
|
|
120
120
|
raise InvalidParameterError.new("Bad parameter: path must be an String") if params.dig(:path) and !params.dig(:path).is_a?(String)
|
121
121
|
raise MissingParameterError.new("Parameter missing: path") unless params.dig(:path)
|
122
122
|
|
123
|
-
response, _options = Api.send_request("/styles/#{
|
123
|
+
response, _options = Api.send_request("/styles/#{URI.encode_www_form_component(params[:path])}", :delete, params, options)
|
124
124
|
response.data
|
125
125
|
end
|
126
126
|
|
@@ -39,7 +39,6 @@ module Files
|
|
39
39
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
40
40
|
|
41
41
|
response, options = Api.send_request("/usage_daily_snapshots", :get, params, options)
|
42
|
-
response.data.map { |object| UsageDailySnapshot.new(object, options) }
|
43
42
|
end
|
44
43
|
|
45
44
|
def self.all(params = {}, options = {})
|
@@ -84,7 +84,6 @@ module Files
|
|
84
84
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
85
85
|
|
86
86
|
response, options = Api.send_request("/usage_snapshots", :get, params, options)
|
87
|
-
response.data.map { |object| UsageSnapshot.new(object, options) }
|
88
87
|
end
|
89
88
|
|
90
89
|
def self.all(params = {}, options = {})
|
@@ -609,7 +609,6 @@ module Files
|
|
609
609
|
raise InvalidParameterError.new("Bad parameter: search must be an String") if params.dig(:search) and !params.dig(:search).is_a?(String)
|
610
610
|
|
611
611
|
response, options = Api.send_request("/users", :get, params, options)
|
612
|
-
response.data.map { |object| User.new(object, options) }
|
613
612
|
end
|
614
613
|
|
615
614
|
def self.all(params = {}, options = {})
|
@@ -51,7 +51,6 @@ module Files
|
|
51
51
|
raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
|
52
52
|
|
53
53
|
response, options = Api.send_request("/user_cipher_uses", :get, params, options)
|
54
|
-
response.data.map { |object| UserCipherUse.new(object, options) }
|
55
54
|
end
|
56
55
|
|
57
56
|
def self.all(params = {}, options = {})
|
data/spec/list_spec.rb
ADDED
@@ -0,0 +1,192 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Files::List do
|
4
|
+
ResourceWrapper = Struct.new(:object, :options)
|
5
|
+
let(:options) { { client: client } }
|
6
|
+
let(:client) { instance_double(Files::ApiClient, cursor: nil) }
|
7
|
+
let(:params) { {} }
|
8
|
+
|
9
|
+
describe "#auto_paging_each" do
|
10
|
+
context "when per_page is set" do
|
11
|
+
let(:params) { { per_page: per_page } }
|
12
|
+
let(:per_page) { 3 }
|
13
|
+
|
14
|
+
context "when response includes a cursor" do
|
15
|
+
let(:client) { instance_double(Files::ApiClient, cursor: "XXX-XXX") }
|
16
|
+
|
17
|
+
it "does not call the API until out of responses" do
|
18
|
+
server_results = ('a'..'h').to_a
|
19
|
+
times_block_yielded = 0
|
20
|
+
list = described_class.new(ResourceWrapper, params) {
|
21
|
+
times_block_yielded += 1
|
22
|
+
[
|
23
|
+
instance_double(Files::Response, data: server_results.shift(per_page), http_status: 200),
|
24
|
+
options
|
25
|
+
]
|
26
|
+
}
|
27
|
+
results = list.auto_paging_each
|
28
|
+
expect(results.class).to eq(Enumerator::Lazy)
|
29
|
+
expect(times_block_yielded).to eq(0)
|
30
|
+
expect(results.next.object).to eq('a')
|
31
|
+
expect(times_block_yielded).to eq(1)
|
32
|
+
expect(results.next.object).to eq('b')
|
33
|
+
expect(results.next.object).to eq('c')
|
34
|
+
expect(results.next.object).to eq('d')
|
35
|
+
expect(times_block_yielded).to eq(2)
|
36
|
+
expect(results.next.object).to eq('e')
|
37
|
+
expect(results.next.object).to eq('f')
|
38
|
+
expect(results.next.object).to eq('g')
|
39
|
+
expect(results.next.object).to eq('h')
|
40
|
+
expect(times_block_yielded).to eq(3)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "stops calling the API once there is an error" do
|
44
|
+
server_results = ('a'..'h').to_a
|
45
|
+
times_block_yielded = 0
|
46
|
+
list = described_class.new(ResourceWrapper, params) {
|
47
|
+
times_block_yielded += 1
|
48
|
+
[
|
49
|
+
instance_double(Files::Response, data: server_results.shift(per_page), http_status: 400),
|
50
|
+
options
|
51
|
+
]
|
52
|
+
}
|
53
|
+
results = list.auto_paging_each
|
54
|
+
expect(results.count).to eq(0)
|
55
|
+
expect(times_block_yielded).to eq(1)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
context "when response does not include a cursor" do
|
60
|
+
let(:client) { instance_double(Files::ApiClient, cursor: nil) }
|
61
|
+
|
62
|
+
it "stops requesting any more results after the first try" do
|
63
|
+
server_results = ('a'..'h').to_a
|
64
|
+
times_block_yielded = 0
|
65
|
+
list = described_class.new(ResourceWrapper, params) {
|
66
|
+
times_block_yielded += 1
|
67
|
+
[
|
68
|
+
instance_double(Files::Response, data: server_results.shift(per_page), http_status: 200),
|
69
|
+
options
|
70
|
+
]
|
71
|
+
}
|
72
|
+
results = list.auto_paging_each
|
73
|
+
expect(results.count).to eq(3)
|
74
|
+
expect(times_block_yielded).to eq(1)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
it "returns all results at once" do
|
80
|
+
server_results = ('a'..'h').to_a
|
81
|
+
times_block_yielded = 0
|
82
|
+
list = described_class.new(ResourceWrapper, params) {
|
83
|
+
times_block_yielded += 1
|
84
|
+
[
|
85
|
+
instance_double(Files::Response, data: server_results, http_status: 200),
|
86
|
+
options
|
87
|
+
]
|
88
|
+
}
|
89
|
+
results = list.auto_paging_each
|
90
|
+
expect(results.count).to eq(8)
|
91
|
+
expect(times_block_yielded).to eq(1)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
describe "#each" do
|
96
|
+
it "returns all results at once" do
|
97
|
+
server_results = ('a'..'h').to_a
|
98
|
+
times_block_yielded = 0
|
99
|
+
results = described_class.new(ResourceWrapper, params) {
|
100
|
+
times_block_yielded += 1
|
101
|
+
[
|
102
|
+
instance_double(Files::Response, data: server_results, http_status: 200),
|
103
|
+
options
|
104
|
+
]
|
105
|
+
}
|
106
|
+
expect(results.count).to eq(8)
|
107
|
+
expect(times_block_yielded).to eq(1)
|
108
|
+
end
|
109
|
+
|
110
|
+
context "when per_page is set" do
|
111
|
+
let(:params) { { per_page: per_page } }
|
112
|
+
let(:per_page) { 3 }
|
113
|
+
|
114
|
+
context "when response includes a cursor" do
|
115
|
+
let(:client) { instance_double(Files::ApiClient, cursor: "XXX-XXX") }
|
116
|
+
|
117
|
+
it "does not call the API until out of responses" do
|
118
|
+
server_results = ('a'..'h').to_a
|
119
|
+
times_block_yielded = 0
|
120
|
+
list = described_class.new(ResourceWrapper, params) {
|
121
|
+
times_block_yielded += 1
|
122
|
+
[
|
123
|
+
instance_double(Files::Response, data: server_results.shift(per_page), http_status: 200),
|
124
|
+
options
|
125
|
+
]
|
126
|
+
}
|
127
|
+
results = list.enum_for(:each)
|
128
|
+
expect(times_block_yielded).to eq(0)
|
129
|
+
expect(results.next.object).to eq('a')
|
130
|
+
expect(times_block_yielded).to eq(1)
|
131
|
+
expect(results.next.object).to eq('b')
|
132
|
+
expect(results.next.object).to eq('c')
|
133
|
+
next_results = list.next_page.enum_for(:each)
|
134
|
+
expect(times_block_yielded).to eq(2)
|
135
|
+
expect(next_results.next.object).to eq('d')
|
136
|
+
expect(next_results.next.object).to eq('e')
|
137
|
+
expect(next_results.next.object).to eq('f')
|
138
|
+
next_results = list.next_page.enum_for(:each)
|
139
|
+
expect(times_block_yielded).to eq(3)
|
140
|
+
expect(next_results.next.object).to eq('g')
|
141
|
+
expect(next_results.next.object).to eq('h')
|
142
|
+
next_results = list.next_page.enum_for(:each)
|
143
|
+
expect(next_results.count).to eq(0)
|
144
|
+
end
|
145
|
+
|
146
|
+
it "return the same data when call more than once" do
|
147
|
+
server_results = ('a'..'h').to_a
|
148
|
+
list = described_class.new(ResourceWrapper, params) {
|
149
|
+
[
|
150
|
+
instance_double(Files::Response, data: server_results.shift(per_page), http_status: 200),
|
151
|
+
options
|
152
|
+
]
|
153
|
+
}
|
154
|
+
expect(list.to_a).to eq(list.to_a)
|
155
|
+
end
|
156
|
+
|
157
|
+
it "stops calling the API once there is an error" do
|
158
|
+
server_results = ('a'..'h').to_a
|
159
|
+
times_block_yielded = 0
|
160
|
+
results = described_class.new(ResourceWrapper, params) {
|
161
|
+
times_block_yielded += 1
|
162
|
+
[
|
163
|
+
instance_double(Files::Response, data: server_results, http_status: 400),
|
164
|
+
options
|
165
|
+
]
|
166
|
+
}
|
167
|
+
expect(results.count).to eq(0)
|
168
|
+
expect(times_block_yielded).to eq(1)
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
context "when response does not include a cursor" do
|
173
|
+
let(:client) { instance_double(Files::ApiClient, cursor: nil) }
|
174
|
+
|
175
|
+
it "stops requesting any more results after the first try" do
|
176
|
+
server_results = ('a'..'h').to_a
|
177
|
+
times_block_yielded = 0
|
178
|
+
list = described_class.new(ResourceWrapper, params) {
|
179
|
+
times_block_yielded += 1
|
180
|
+
[
|
181
|
+
instance_double(Files::Response, data: server_results, http_status: 200),
|
182
|
+
options
|
183
|
+
]
|
184
|
+
}
|
185
|
+
results = list.enum_for(:each)
|
186
|
+
expect(results.count).to eq(8)
|
187
|
+
expect(times_block_yielded).to eq(1)
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Files::File, :with_test_folder do
|
4
|
+
describe "#read" do
|
5
|
+
before do
|
6
|
+
Files::File.open(test_folder.join("read.txt").to_s, 'w', options) do |f|
|
7
|
+
f.write("contents")
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
it "returns the body of the file" do
|
12
|
+
file = Files::File.find(test_folder.join("read.txt").to_s, {}, options)
|
13
|
+
expect(file.read).to eq("contents")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "#write" do
|
18
|
+
it "can take string" do
|
19
|
+
Files::File.open(test_folder.join("write-as-string.txt").to_s, 'w', options) do |f|
|
20
|
+
f.write("I am a string")
|
21
|
+
end
|
22
|
+
|
23
|
+
file = Files::File.find(test_folder.join("write-as-string.txt").to_s, {}, options)
|
24
|
+
expect(file.read).to eq("I am a string")
|
25
|
+
end
|
26
|
+
|
27
|
+
it "can take IO object" do
|
28
|
+
Files::File.open(test_folder.join("write-as-io.txt").to_s, 'w', options) do |f|
|
29
|
+
f.write(StringIO.new("I am a string via IO"))
|
30
|
+
end
|
31
|
+
|
32
|
+
file = Files::File.find(test_folder.join("write-as-io.txt").to_s, {}, options)
|
33
|
+
expect(file.read).to eq("I am a string via IO")
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Files::Folder, :with_test_folder do
|
4
|
+
describe "#list_for" do
|
5
|
+
before do
|
6
|
+
Files::File.open(test_folder.join("example.txt").to_s, 'w', options) do |f|
|
7
|
+
f.write("my text")
|
8
|
+
end
|
9
|
+
|
10
|
+
Files::Folder.mkdir(test_folder.join("other").to_s, {}, options)
|
11
|
+
|
12
|
+
Files::File.open(test_folder.join("other/example2.txt").to_s, 'w', options) do |f|
|
13
|
+
f.write("my text 2")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
it "lists from the root" do
|
18
|
+
results = described_class.list_for(test_folder.to_s, {}, options)
|
19
|
+
|
20
|
+
expect(results.map(&:path).to_a).to match_array([ test_folder.join("example.txt").to_s, test_folder.join("other").to_s ])
|
21
|
+
expect(results.map(&:type).to_a).to match_array(%w[file directory])
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "#delete" do
|
26
|
+
it "deletes a folder" do
|
27
|
+
Files::Folder.mkdir(test_folder.join("my-new-folder").to_s, {}, options)
|
28
|
+
Files::Folder.delete(test_folder.join("my-new-folder").to_s, {}, options)
|
29
|
+
|
30
|
+
expect(Files::Folder.exist?(test_folder.join("my-new-folder").to_s, options)).to eq(false)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "mkdir" do
|
35
|
+
it "makes a new folder" do
|
36
|
+
Files::Folder.mkdir(test_folder.join("my-new-folder").to_s, {}, options)
|
37
|
+
expect(Files::Folder.exist?(test_folder.join("my-new-folder").to_s, options)).to eq(true)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require "files.com"
|
2
|
+
|
3
|
+
RSpec.configure do |config|
|
4
|
+
config.expect_with :rspec do |expectations|
|
5
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
6
|
+
end
|
7
|
+
|
8
|
+
config.mock_with :rspec do |mocks|
|
9
|
+
mocks.verify_partial_doubles = true
|
10
|
+
end
|
11
|
+
|
12
|
+
RSpec.shared_context "API Helpers" do
|
13
|
+
let(:test_folder) { @test_folder }
|
14
|
+
let(:api_key) { @api_key }
|
15
|
+
let(:options) { { api_key: api_key } }
|
16
|
+
end
|
17
|
+
|
18
|
+
RSpec.configure do |config|
|
19
|
+
config.include_context "API Helpers", :with_test_folder
|
20
|
+
end
|
21
|
+
|
22
|
+
config.around(:example, :with_test_folder) do |all|
|
23
|
+
@api_key = ENV["TEST_API_KEY"] || File.read("../../config/test_api_key.txt")
|
24
|
+
@test_folder = Pathname.new("files_regional_worker/#{SecureRandom.uuid}")
|
25
|
+
Files::Folder.exist?("files_regional_worker", api_key: @api_key)
|
26
|
+
Files::Folder.mkdir("files_regional_worker", {}, api_key: @api_key) unless Files::Folder.exist?("files_regional_worker", api_key: @api_key)
|
27
|
+
Files::Folder.mkdir(@test_folder.to_s, {}, api_key: @api_key)
|
28
|
+
all.run
|
29
|
+
Files::Folder.delete(@test_folder.to_s, { recursive: true }, api_key: @api_key)
|
30
|
+
end
|
31
|
+
|
32
|
+
config.shared_context_metadata_behavior = :apply_to_host_groups
|
33
|
+
config.disable_monkey_patching!
|
34
|
+
config.order = :random
|
35
|
+
Kernel.srand config.seed
|
36
|
+
end
|
data/test.sh
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: files.com
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.34
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- files.com
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-05-
|
11
|
+
date: 2020-05-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -152,6 +152,7 @@ files:
|
|
152
152
|
- lib/files.com/api.rb
|
153
153
|
- lib/files.com/api_client.rb
|
154
154
|
- lib/files.com/errors.rb
|
155
|
+
- lib/files.com/list.rb
|
155
156
|
- lib/files.com/models/account.rb
|
156
157
|
- lib/files.com/models/account_line_item.rb
|
157
158
|
- lib/files.com/models/action.rb
|
@@ -233,6 +234,11 @@ files:
|
|
233
234
|
- lib/files.com/system_profiler.rb
|
234
235
|
- lib/files.com/util.rb
|
235
236
|
- lib/files.com/version.rb
|
237
|
+
- spec/list_spec.rb
|
238
|
+
- spec/models/file_spec.rb
|
239
|
+
- spec/models/folder_spec.rb
|
240
|
+
- spec/spec_helper.rb
|
241
|
+
- test.sh
|
236
242
|
- test/test.rb
|
237
243
|
homepage: https://www.files.com
|
238
244
|
licenses:
|