brick_ftp 2.0.3 → 2.1.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.
- checksums.yaml +4 -4
- data/.circleci/config.yml +0 -10
- data/.rubocop.yml +1 -1
- data/.rubocop_todo.yml +7 -0
- data/CHANGELOG.md +19 -0
- data/README.md +4 -8
- data/brick_ftp.gemspec +1 -1
- data/docker-compose.yml +7 -0
- data/lib/brick_ftp/client.rb +17 -4
- data/lib/brick_ftp/core_ext/hash/symbolize_keys.rb +4 -4
- data/lib/brick_ftp/restful_api/client.rb +20 -8
- data/lib/brick_ftp/restful_api/upload_file.rb +1 -1
- data/lib/brick_ftp/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0963dd222588305e1338d88de6cbbc880994cc1c6d6285d1db7611f0d211745d'
|
4
|
+
data.tar.gz: 9677a3209ae374ce09cc879a057b742c9cb59773417a040302658cb1a23b0e34
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c29f0e5dd4a68a7252d5c5c6559056c821ba9a865efbed6fd50c406f0126106f7fc8c7dba23e0a3941d82f17df428d373e7112a3a1449b36b7f09cb1a97bbc7
|
7
|
+
data.tar.gz: c9652d9b29f3886cfd3b81b5b0441d661b93d178e0f823816dd409058e3082f9c5589c277a87647649b152fffbe8504f041240e0d1ec66ccd4f4c965ac0f4a02
|
data/.circleci/config.yml
CHANGED
@@ -18,14 +18,6 @@ jobs:
|
|
18
18
|
- run:
|
19
19
|
name: RSpec
|
20
20
|
command: rspec
|
21
|
-
ruby-2.3:
|
22
|
-
<<: *build
|
23
|
-
docker:
|
24
|
-
- image: circleci/ruby:2.3
|
25
|
-
ruby-2.4:
|
26
|
-
<<: *build
|
27
|
-
docker:
|
28
|
-
- image: circleci/ruby:2.4
|
29
21
|
ruby-2.5:
|
30
22
|
<<: *build
|
31
23
|
docker:
|
@@ -43,8 +35,6 @@ workflows:
|
|
43
35
|
version: 2
|
44
36
|
build-using-multi-rubies:
|
45
37
|
jobs:
|
46
|
-
- ruby-2.3
|
47
|
-
- ruby-2.4
|
48
38
|
- ruby-2.5
|
49
39
|
- ruby-2.6
|
50
40
|
- ruby-2.7
|
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -18,6 +18,25 @@ Files::User.new(params, api_key: 'YOUR_API_KEY')
|
|
18
18
|
I will archive this repository after found official SDK.
|
19
19
|
|
20
20
|
|
21
|
+
[v2.1.0](https://github.com/koshigoe/brick_ftp/compare/v2.0.3...v2.1.0)
|
22
|
+
----
|
23
|
+
|
24
|
+
[Full Changelog](https://github.com/koshigoe/brick_ftp/compare/v2.0.3...v2.1.0)
|
25
|
+
|
26
|
+
### Enhancements:
|
27
|
+
|
28
|
+
### Fixed Bugs:
|
29
|
+
|
30
|
+
### Deprecate
|
31
|
+
|
32
|
+
- Deprecate keyword argument `subdomain:` of `BrickFTP::Client#initialize`
|
33
|
+
- To enable to specify base URL of REST API (e.g. `http://127.0.0.1:40410/`)
|
34
|
+
|
35
|
+
### Breaking Changes:
|
36
|
+
|
37
|
+
- Dropping support for Ruby 2.3, 2.4
|
38
|
+
|
39
|
+
|
21
40
|
[v2.0.3](https://github.com/koshigoe/brick_ftp/compare/v2.0.2...v2.0.3)
|
22
41
|
----
|
23
42
|
|
data/README.md
CHANGED
@@ -33,22 +33,18 @@ Usage
|
|
33
33
|
----
|
34
34
|
|
35
35
|
```
|
36
|
+
$ docker compose up -d
|
36
37
|
$ bin/console
|
37
|
-
> client = BrickFTP::Client.new
|
38
|
+
> client = BrickFTP::Client.new(base_url: 'http://localhost:40410', api_key: 'dummy')
|
38
39
|
> client.list_users
|
39
40
|
```
|
40
41
|
|
41
|
-
```
|
42
|
-
$ bin/console
|
43
|
-
> api_client = BrickFTP::RESTfulAPI::Client.new(ENV['BRICK_FTP_SUBDOMAIN'], ENV['BRICK_FTP_API_KEY'])
|
44
|
-
> BrickFTP::RESTfulAPI::ListUsers.new(api_client).call
|
45
|
-
```
|
46
|
-
|
47
42
|
### Environment Variables
|
48
43
|
|
49
44
|
Name | Description
|
50
45
|
--------------------- | -----------
|
51
|
-
`BRICK_FTP_SUBDOMAIN` | Default subdomain
|
46
|
+
`BRICK_FTP_SUBDOMAIN` | Default subdomain (deprecated)
|
47
|
+
`BRICK_FTP_BASE_URL` | Base URL of Files.com's REST API (e.g. `https://{subdomain}.files.com/`)
|
52
48
|
`BRICK_FTP_API_KEY` | Default API key
|
53
49
|
|
54
50
|
|
data/brick_ftp.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ['lib']
|
22
22
|
|
23
|
-
spec.required_ruby_version = '>= 2.
|
23
|
+
spec.required_ruby_version = '>= 2.5.0'
|
24
24
|
|
25
25
|
spec.add_development_dependency 'bundler', '>= 1.16'
|
26
26
|
spec.add_development_dependency 'pry', '~> 0.11'
|
data/docker-compose.yml
ADDED
data/lib/brick_ftp/client.rb
CHANGED
@@ -10,14 +10,26 @@ module BrickFTP
|
|
10
10
|
# BrickFTP::Client.new.list_users
|
11
11
|
#
|
12
12
|
class Client
|
13
|
-
attr_reader :
|
13
|
+
attr_reader :base_url, :api_key, :api_client
|
14
14
|
|
15
|
-
# @param [String]
|
15
|
+
# @param [String] base_url
|
16
|
+
# @param [String] subdomain (deprecated)
|
16
17
|
# @param [String] api_key
|
17
|
-
def initialize(subdomain: nil, api_key: nil)
|
18
|
+
def initialize(base_url: nil, subdomain: nil, api_key: nil)
|
19
|
+
if subdomain
|
20
|
+
warn('DEPRECATION WARNING: The argument `subdomain:` will be deprecated in a future version.' \
|
21
|
+
' Please use `base_url:` instead.')
|
22
|
+
end
|
23
|
+
|
18
24
|
@subdomain = subdomain || ENV['BRICK_FTP_SUBDOMAIN']
|
25
|
+
@base_url = base_url || ENV['BRICK_FTP_BASE_URL']
|
19
26
|
@api_key = api_key || ENV['BRICK_FTP_API_KEY']
|
20
|
-
@api_client = BrickFTP::RESTfulAPI::Client.new(@subdomain, @api_key)
|
27
|
+
@api_client = BrickFTP::RESTfulAPI::Client.new(@base_url || @subdomain, @api_key)
|
28
|
+
end
|
29
|
+
|
30
|
+
def subdomain
|
31
|
+
warn("DEPRECATION WARNING: #{self.class.name}##{__method__} will be deprecated in a future version.")
|
32
|
+
@subdomain
|
21
33
|
end
|
22
34
|
|
23
35
|
private
|
@@ -34,6 +46,7 @@ module BrickFTP
|
|
34
46
|
|
35
47
|
def respond_to_missing?(symbol, include_private)
|
36
48
|
return true if command_class(symbol)
|
49
|
+
|
37
50
|
super
|
38
51
|
end
|
39
52
|
|
@@ -7,10 +7,10 @@ module BrickFTP
|
|
7
7
|
def symbolize_keys
|
8
8
|
each_key.each_with_object({}) do |key, mem|
|
9
9
|
symbolized_key = begin
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
key.to_sym
|
11
|
+
rescue StandardError
|
12
|
+
key
|
13
|
+
end
|
14
14
|
mem[symbolized_key] = self[key]
|
15
15
|
end
|
16
16
|
end
|
@@ -35,12 +35,13 @@ module BrickFTP
|
|
35
35
|
|
36
36
|
# Initialize REST API client.
|
37
37
|
#
|
38
|
-
# @param [String]
|
38
|
+
# @param [String] base_url
|
39
39
|
# @param [String] api_key
|
40
40
|
#
|
41
|
-
def initialize(
|
42
|
-
@
|
43
|
-
@http
|
41
|
+
def initialize(base_url, api_key)
|
42
|
+
@base_uri = make_base_uri(base_url)
|
43
|
+
@http = Net::HTTP.new(@base_uri.host, @base_uri.port)
|
44
|
+
@http.use_ssl = (@base_uri.scheme == 'https')
|
44
45
|
@http.open_timeout = OPEN_TIMEOUT
|
45
46
|
@http.read_timeout = READ_TIMEOUT
|
46
47
|
@request_headers = {
|
@@ -146,11 +147,22 @@ module BrickFTP
|
|
146
147
|
res = http.start { |session| session.request(req) }
|
147
148
|
|
148
149
|
return io.size if res.is_a?(Net::HTTPSuccess)
|
150
|
+
|
149
151
|
raise Error, parse_error_response(res)
|
150
152
|
end
|
151
153
|
|
152
154
|
private
|
153
155
|
|
156
|
+
DEFAULT_BASE_URL_TEMPLATE = 'https://%{subdomain}.files.com'
|
157
|
+
|
158
|
+
def make_base_uri(url_or_subdomain)
|
159
|
+
unless /[.:]/.match?(url_or_subdomain)
|
160
|
+
url_or_subdomain = format(DEFAULT_BASE_URL_TEMPLATE, subdomain: url_or_subdomain)
|
161
|
+
end
|
162
|
+
|
163
|
+
URI.parse(url_or_subdomain)
|
164
|
+
end
|
165
|
+
|
154
166
|
def handle_response(response)
|
155
167
|
case response
|
156
168
|
when Net::HTTPNoContent
|
@@ -169,10 +181,10 @@ module BrickFTP
|
|
169
181
|
|
170
182
|
def parse_error_response(response)
|
171
183
|
parsed = begin
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
184
|
+
JSON.parse(response.body)
|
185
|
+
rescue StandardError
|
186
|
+
{}
|
187
|
+
end
|
176
188
|
parsed = {} unless parsed.is_a?(Hash)
|
177
189
|
|
178
190
|
ErrorResponse.new(parsed.symbolize_keys).tap do |e|
|
@@ -17,7 +17,7 @@ module BrickFTP
|
|
17
17
|
class UploadFile
|
18
18
|
include Command
|
19
19
|
|
20
|
-
CHUNK_SIZE_RANGE = 5_242_880..5_368_709_120
|
20
|
+
CHUNK_SIZE_RANGE = (5_242_880..5_368_709_120).freeze
|
21
21
|
|
22
22
|
# At this point, you are to send a PUT request to the returned upload_uri with the file data,
|
23
23
|
# along with the headers and parameters provided to you from BrickFTP.
|
data/lib/brick_ftp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brick_ftp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- koshigoe
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-08-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -164,6 +164,7 @@ files:
|
|
164
164
|
- bin/console
|
165
165
|
- bin/setup
|
166
166
|
- brick_ftp.gemspec
|
167
|
+
- docker-compose.yml
|
167
168
|
- lib/brick_ftp.rb
|
168
169
|
- lib/brick_ftp/client.rb
|
169
170
|
- lib/brick_ftp/core_ext.rb
|
@@ -272,14 +273,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
272
273
|
requirements:
|
273
274
|
- - ">="
|
274
275
|
- !ruby/object:Gem::Version
|
275
|
-
version: 2.
|
276
|
+
version: 2.5.0
|
276
277
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
277
278
|
requirements:
|
278
279
|
- - ">="
|
279
280
|
- !ruby/object:Gem::Version
|
280
281
|
version: '0'
|
281
282
|
requirements: []
|
282
|
-
rubygems_version: 3.1.
|
283
|
+
rubygems_version: 3.1.6
|
283
284
|
signing_key:
|
284
285
|
specification_version: 4
|
285
286
|
summary: BrickFTP's REST API client.
|