globus_client 0.14.0 → 0.15.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/.rubocop.yml +3 -2
- data/Gemfile.lock +74 -72
- data/README.md +1 -2
- data/api_test.rb +2 -4
- data/globus_client.gemspec +1 -1
- data/lib/globus_client/authenticator.rb +5 -13
- data/lib/globus_client/endpoint.rb +19 -21
- data/lib/globus_client/identity.rb +2 -10
- data/lib/globus_client/version.rb +1 -1
- data/lib/globus_client.rb +10 -10
- metadata +3 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e189003b0a3f0592abd4fb7fabb006a3367f3cd330d83d7e46da2c2993bbbc21
|
4
|
+
data.tar.gz: 36c6ff9a70ddcfea7be6e1ca044b110adb536aa911adbb1626f5086737342d88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02cd08266cd52d2a3dd86ded97c8ce0085832fb446223375ab69164ed087187611e184e7cb4555208a0fb30b477e6c8b0e212041073cce2a3c328ddf6412e0c3
|
7
|
+
data.tar.gz: 1d54da5c74f41e1a98ecdf0296ee948e14a9e569ed1f58a20f52c96347b1b215a4121050cef2e9c7f3d25d525a5b061e9cfe79cc8517efb1ff896cb517226962
|
data/.rubocop.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
globus_client (0.
|
5
|
-
activesupport (>= 4.2
|
4
|
+
globus_client (0.15.0)
|
5
|
+
activesupport (>= 4.2)
|
6
6
|
faraday
|
7
7
|
faraday-retry
|
8
8
|
zeitwerk
|
@@ -10,108 +10,110 @@ PATH
|
|
10
10
|
GEM
|
11
11
|
remote: https://rubygems.org/
|
12
12
|
specs:
|
13
|
-
activesupport (
|
13
|
+
activesupport (8.0.1)
|
14
14
|
base64
|
15
|
+
benchmark (>= 0.3)
|
15
16
|
bigdecimal
|
16
|
-
concurrent-ruby (~> 1.0, >= 1.
|
17
|
+
concurrent-ruby (~> 1.0, >= 1.3.1)
|
17
18
|
connection_pool (>= 2.2.5)
|
18
19
|
drb
|
19
20
|
i18n (>= 1.6, < 2)
|
21
|
+
logger (>= 1.4.2)
|
20
22
|
minitest (>= 5.1)
|
21
|
-
|
22
|
-
tzinfo (~> 2.0)
|
23
|
-
|
24
|
-
|
23
|
+
securerandom (>= 0.3)
|
24
|
+
tzinfo (~> 2.0, >= 2.0.5)
|
25
|
+
uri (>= 0.13.1)
|
26
|
+
addressable (2.8.7)
|
27
|
+
public_suffix (>= 2.0.2, < 7.0)
|
25
28
|
ast (2.4.2)
|
26
|
-
base64 (0.
|
27
|
-
|
29
|
+
base64 (0.2.0)
|
30
|
+
benchmark (0.4.0)
|
31
|
+
bigdecimal (3.1.9)
|
28
32
|
byebug (11.1.3)
|
29
|
-
concurrent-ruby (1.
|
30
|
-
connection_pool (2.
|
31
|
-
crack (0.
|
33
|
+
concurrent-ruby (1.3.5)
|
34
|
+
connection_pool (2.5.0)
|
35
|
+
crack (1.0.0)
|
36
|
+
bigdecimal
|
32
37
|
rexml
|
33
|
-
diff-lcs (1.5.
|
34
|
-
docile (1.4.
|
35
|
-
drb (2.
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
faraday-retry (2.2.
|
38
|
+
diff-lcs (1.5.1)
|
39
|
+
docile (1.4.1)
|
40
|
+
drb (2.2.1)
|
41
|
+
faraday (2.12.2)
|
42
|
+
faraday-net_http (>= 2.0, < 3.5)
|
43
|
+
json
|
44
|
+
logger
|
45
|
+
faraday-net_http (3.4.0)
|
46
|
+
net-http (>= 0.5.0)
|
47
|
+
faraday-retry (2.2.1)
|
43
48
|
faraday (~> 2.0)
|
44
|
-
hashdiff (1.
|
45
|
-
i18n (1.14.
|
49
|
+
hashdiff (1.1.2)
|
50
|
+
i18n (1.14.7)
|
46
51
|
concurrent-ruby (~> 1.0)
|
47
|
-
json (2.
|
48
|
-
language_server-protocol (3.17.0.
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
52
|
+
json (2.9.1)
|
53
|
+
language_server-protocol (3.17.0.4)
|
54
|
+
logger (1.6.6)
|
55
|
+
minitest (5.25.4)
|
56
|
+
net-http (0.6.0)
|
57
|
+
uri
|
58
|
+
parallel (1.26.3)
|
59
|
+
parser (3.3.7.1)
|
53
60
|
ast (~> 2.4.1)
|
54
61
|
racc
|
55
|
-
public_suffix (
|
56
|
-
racc (1.
|
62
|
+
public_suffix (6.0.1)
|
63
|
+
racc (1.8.1)
|
57
64
|
rainbow (3.1.1)
|
58
|
-
rake (13.
|
59
|
-
regexp_parser (2.
|
60
|
-
rexml (3.
|
61
|
-
rspec (3.
|
62
|
-
rspec-core (~> 3.
|
63
|
-
rspec-expectations (~> 3.
|
64
|
-
rspec-mocks (~> 3.
|
65
|
-
rspec-core (3.
|
66
|
-
rspec-support (~> 3.
|
67
|
-
rspec-expectations (3.
|
65
|
+
rake (13.2.1)
|
66
|
+
regexp_parser (2.10.0)
|
67
|
+
rexml (3.4.0)
|
68
|
+
rspec (3.13.0)
|
69
|
+
rspec-core (~> 3.13.0)
|
70
|
+
rspec-expectations (~> 3.13.0)
|
71
|
+
rspec-mocks (~> 3.13.0)
|
72
|
+
rspec-core (3.13.3)
|
73
|
+
rspec-support (~> 3.13.0)
|
74
|
+
rspec-expectations (3.13.3)
|
68
75
|
diff-lcs (>= 1.2.0, < 2.0)
|
69
|
-
rspec-support (~> 3.
|
70
|
-
rspec-mocks (3.
|
76
|
+
rspec-support (~> 3.13.0)
|
77
|
+
rspec-mocks (3.13.2)
|
71
78
|
diff-lcs (>= 1.2.0, < 2.0)
|
72
|
-
rspec-support (~> 3.
|
73
|
-
rspec-support (3.
|
74
|
-
rubocop (1.
|
75
|
-
base64 (~> 0.1.1)
|
79
|
+
rspec-support (~> 3.13.0)
|
80
|
+
rspec-support (3.13.2)
|
81
|
+
rubocop (1.71.2)
|
76
82
|
json (~> 2.3)
|
77
83
|
language_server-protocol (>= 3.17.0)
|
78
84
|
parallel (~> 1.10)
|
79
|
-
parser (>= 3.
|
85
|
+
parser (>= 3.3.0.2)
|
80
86
|
rainbow (>= 2.2.2, < 4.0)
|
81
|
-
regexp_parser (>=
|
82
|
-
|
83
|
-
rubocop-ast (>= 1.28.1, < 2.0)
|
87
|
+
regexp_parser (>= 2.9.3, < 3.0)
|
88
|
+
rubocop-ast (>= 1.38.0, < 2.0)
|
84
89
|
ruby-progressbar (~> 1.7)
|
85
|
-
unicode-display_width (>= 2.4.0, <
|
86
|
-
rubocop-ast (1.
|
87
|
-
parser (>= 3.
|
88
|
-
rubocop-
|
89
|
-
rubocop (
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
rubocop (>= 1.7.0, < 2.0)
|
94
|
-
rubocop-ast (>= 0.4.0)
|
95
|
-
rubocop-rspec (2.24.1)
|
96
|
-
rubocop (~> 1.33)
|
97
|
-
rubocop-capybara (~> 2.17)
|
98
|
-
rubocop-factory_bot (~> 2.22)
|
90
|
+
unicode-display_width (>= 2.4.0, < 4.0)
|
91
|
+
rubocop-ast (1.38.0)
|
92
|
+
parser (>= 3.3.1.0)
|
93
|
+
rubocop-performance (1.23.1)
|
94
|
+
rubocop (>= 1.48.1, < 2.0)
|
95
|
+
rubocop-ast (>= 1.31.1, < 2.0)
|
96
|
+
rubocop-rspec (3.4.0)
|
97
|
+
rubocop (~> 1.61)
|
99
98
|
ruby-progressbar (1.13.0)
|
100
|
-
|
99
|
+
securerandom (0.4.1)
|
101
100
|
simplecov (0.22.0)
|
102
101
|
docile (~> 1.1)
|
103
102
|
simplecov-html (~> 0.11)
|
104
103
|
simplecov_json_formatter (~> 0.1)
|
105
|
-
simplecov-html (0.
|
104
|
+
simplecov-html (0.13.1)
|
106
105
|
simplecov_json_formatter (0.1.4)
|
107
106
|
tzinfo (2.0.6)
|
108
107
|
concurrent-ruby (~> 1.0)
|
109
|
-
unicode-display_width (
|
110
|
-
|
108
|
+
unicode-display_width (3.1.4)
|
109
|
+
unicode-emoji (~> 4.0, >= 4.0.4)
|
110
|
+
unicode-emoji (4.0.4)
|
111
|
+
uri (1.0.2)
|
112
|
+
webmock (3.25.0)
|
111
113
|
addressable (>= 2.8.0)
|
112
114
|
crack (>= 0.3.2)
|
113
115
|
hashdiff (>= 0.4.0, < 2.0.0)
|
114
|
-
zeitwerk (2.
|
116
|
+
zeitwerk (2.7.1)
|
115
117
|
|
116
118
|
PLATFORMS
|
117
119
|
x86_64-darwin-19
|
data/README.md
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
[](https://badge.fury.io/rb/globus_client)
|
2
2
|
[](https://circleci.com/gh/sul-dlss/globus_client)
|
3
|
-
[](https://codeclimate.com/github/sul-dlss/globus_client/test_coverage)
|
3
|
+
[](https://codecov.io/github/sul-dlss/globus_client)
|
5
4
|
|
6
5
|
# GlobusClient
|
7
6
|
|
data/api_test.rb
CHANGED
@@ -27,8 +27,7 @@ Benchmark.bm(20) do |benchmark| # rubocop:disable Metrics/BlockLength
|
|
27
27
|
|
28
28
|
benchmark.report('before_perms:') do
|
29
29
|
# Not part of the public API but this allows us to test access changes
|
30
|
-
@before_permissions = GlobusClient::Endpoint.new(
|
31
|
-
path:).send(:access_rule)['permissions']
|
30
|
+
@before_permissions = GlobusClient::Endpoint.new(user_id:, path:).send(:access_rule)['permissions']
|
32
31
|
end
|
33
32
|
|
34
33
|
benchmark.report('has_files?:') do
|
@@ -49,8 +48,7 @@ Benchmark.bm(20) do |benchmark| # rubocop:disable Metrics/BlockLength
|
|
49
48
|
|
50
49
|
benchmark.report('after_perms:') do
|
51
50
|
# Not part of the public API but this allows us to test access changes
|
52
|
-
@after_permissions = GlobusClient::Endpoint.new(
|
53
|
-
path:).send(:access_rule)['permissions']
|
51
|
+
@after_permissions = GlobusClient::Endpoint.new(user_id:, path:).send(:access_rule)['permissions']
|
54
52
|
end
|
55
53
|
|
56
54
|
puts "User #{user_id} exists: #{@user_exists}"
|
data/globus_client.gemspec
CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
32
32
|
spec.require_paths = ['lib']
|
33
33
|
|
34
|
-
spec.add_dependency 'activesupport', '>= 4.2'
|
34
|
+
spec.add_dependency 'activesupport', '>= 4.2'
|
35
35
|
spec.add_dependency 'faraday'
|
36
36
|
spec.add_dependency 'faraday-retry'
|
37
37
|
spec.add_dependency 'zeitwerk'
|
@@ -3,14 +3,8 @@
|
|
3
3
|
class GlobusClient
|
4
4
|
# The namespace for the "login" command
|
5
5
|
class Authenticator
|
6
|
-
def self.token
|
7
|
-
new
|
8
|
-
end
|
9
|
-
|
10
|
-
def initialize(client_id, client_secret, auth_url)
|
11
|
-
@client_id = client_id
|
12
|
-
@client_secret = client_secret
|
13
|
-
@auth_url = auth_url
|
6
|
+
def self.token
|
7
|
+
new.token
|
14
8
|
end
|
15
9
|
|
16
10
|
# Request an access_token
|
@@ -24,16 +18,14 @@ class GlobusClient
|
|
24
18
|
|
25
19
|
private
|
26
20
|
|
27
|
-
attr_reader :client_id, :client_secret, :auth_url
|
28
|
-
|
29
21
|
def connection
|
30
|
-
Faraday.new(url: auth_url)
|
22
|
+
Faraday.new(url: GlobusClient.config.auth_url)
|
31
23
|
end
|
32
24
|
|
33
25
|
def form_data
|
34
26
|
{
|
35
|
-
client_id
|
36
|
-
client_secret
|
27
|
+
client_id: GlobusClient.config.client_id,
|
28
|
+
client_secret: GlobusClient.config.client_secret,
|
37
29
|
encoding: 'form',
|
38
30
|
grant_type: 'client_credentials',
|
39
31
|
scope: 'urn:globus:auth:scope:transfer.api.globus.org:all'
|
@@ -7,12 +7,10 @@ class GlobusClient
|
|
7
7
|
|
8
8
|
FileInfo = Struct.new(:name, :size)
|
9
9
|
|
10
|
-
# @param client [GlobusClient] a configured instance of the GlobusClient
|
11
10
|
# @param path [String] the path to operate on
|
12
11
|
# @param user_id [String] a Globus user ID (e.g., a @stanford.edu email address)
|
13
12
|
# @param notify_email [Boolean] indicates if we should ask Globus to send emails on access change (default: true)
|
14
|
-
def initialize(
|
15
|
-
@client = client
|
13
|
+
def initialize(path:, user_id:, notify_email: true)
|
16
14
|
@user_id = user_id
|
17
15
|
@path = path
|
18
16
|
@notify_email = notify_email
|
@@ -32,8 +30,8 @@ class GlobusClient
|
|
32
30
|
def mkdir
|
33
31
|
# transfer API does not support recursive directory creation
|
34
32
|
paths.each do |path|
|
35
|
-
|
36
|
-
base_url:
|
33
|
+
GlobusClient.instance.post(
|
34
|
+
base_url: GlobusClient.config.transfer_url,
|
37
35
|
path: "#{transfer_path}/mkdir",
|
38
36
|
body: { DATA_TYPE: 'mkdir', path: },
|
39
37
|
expected_response: lambda { |resp|
|
@@ -57,18 +55,18 @@ class GlobusClient
|
|
57
55
|
def delete_access_rule
|
58
56
|
raise(StandardError, "Access rule not found for #{path}") unless access_rule_id
|
59
57
|
|
60
|
-
|
61
|
-
base_url:
|
58
|
+
GlobusClient.instance.delete(
|
59
|
+
base_url: GlobusClient.config.transfer_url,
|
62
60
|
path: "#{access_path}/#{access_rule_id}"
|
63
61
|
)
|
64
62
|
end
|
65
63
|
|
66
64
|
private
|
67
65
|
|
68
|
-
attr_reader :
|
66
|
+
attr_reader :path, :user_id, :notify_email
|
69
67
|
|
70
68
|
def globus_identity_id
|
71
|
-
Identity.new
|
69
|
+
Identity.new.get_identity_id(user_id)
|
72
70
|
end
|
73
71
|
|
74
72
|
# Builds up a path from a list of path elements. E.g., input would look like:
|
@@ -78,7 +76,7 @@ class GlobusClient
|
|
78
76
|
def paths
|
79
77
|
@paths ||= path_segments.map.with_index do |_segment, index|
|
80
78
|
File
|
81
|
-
.join(
|
79
|
+
.join(GlobusClient.config.uploads_directory, path_segments.slice(..index))
|
82
80
|
.concat(PATH_SEPARATOR)
|
83
81
|
end
|
84
82
|
end
|
@@ -99,8 +97,8 @@ class GlobusClient
|
|
99
97
|
# @param files [Array<FileInfo>] an array of FileInfo structs, each of which has a name and a size
|
100
98
|
# @param return_presence [Boolean] if true, return a boolean to indicate if any files at all are present, short-circuiting the recursive operation
|
101
99
|
def ls_path(filepath, files, return_presence: false)
|
102
|
-
response =
|
103
|
-
base_url:
|
100
|
+
response = GlobusClient.instance.get(
|
101
|
+
base_url: GlobusClient.config.transfer_url,
|
104
102
|
path: "#{transfer_path}/ls",
|
105
103
|
params: { path: filepath }
|
106
104
|
)
|
@@ -139,8 +137,8 @@ class GlobusClient
|
|
139
137
|
permissions:
|
140
138
|
}
|
141
139
|
body[:notify_email] = user_id if notify_email
|
142
|
-
|
143
|
-
base_url:
|
140
|
+
GlobusClient.instance.post(
|
141
|
+
base_url: GlobusClient.config.transfer_url,
|
144
142
|
path: access_path,
|
145
143
|
body:
|
146
144
|
)
|
@@ -150,8 +148,8 @@ class GlobusClient
|
|
150
148
|
def update_access_request(permissions:)
|
151
149
|
raise(StandardError, "Access rule not found for #{path}") unless access_rule_id
|
152
150
|
|
153
|
-
|
154
|
-
base_url:
|
151
|
+
GlobusClient.instance.put(
|
152
|
+
base_url: GlobusClient.config.transfer_url,
|
155
153
|
path: "#{access_path}/#{access_rule_id}",
|
156
154
|
body: {
|
157
155
|
DATA_TYPE: 'access',
|
@@ -161,8 +159,8 @@ class GlobusClient
|
|
161
159
|
end
|
162
160
|
|
163
161
|
def access_rule
|
164
|
-
response =
|
165
|
-
base_url:
|
162
|
+
response = GlobusClient.instance.get(
|
163
|
+
base_url: GlobusClient.config.transfer_url,
|
166
164
|
path: access_list_path,
|
167
165
|
content_type: 'application/json'
|
168
166
|
)
|
@@ -175,15 +173,15 @@ class GlobusClient
|
|
175
173
|
end
|
176
174
|
|
177
175
|
def transfer_path
|
178
|
-
"/v0.10/operation/endpoint/#{
|
176
|
+
"/v0.10/operation/endpoint/#{GlobusClient.config.transfer_endpoint_id}"
|
179
177
|
end
|
180
178
|
|
181
179
|
def access_path
|
182
|
-
"/v0.10/endpoint/#{
|
180
|
+
"/v0.10/endpoint/#{GlobusClient.config.transfer_endpoint_id}/access"
|
183
181
|
end
|
184
182
|
|
185
183
|
def access_list_path
|
186
|
-
"/v0.10/endpoint/#{
|
184
|
+
"/v0.10/endpoint/#{GlobusClient.config.transfer_endpoint_id}/access_list"
|
187
185
|
end
|
188
186
|
end
|
189
187
|
end
|
@@ -3,15 +3,11 @@
|
|
3
3
|
class GlobusClient
|
4
4
|
# Lookup of a Globus identity ID
|
5
5
|
class Identity
|
6
|
-
def initialize(client)
|
7
|
-
@client = client
|
8
|
-
end
|
9
|
-
|
10
6
|
# @param user_id [String] the username in the form of an email addresss
|
11
7
|
# @return [Hash] id and status of Globus identity
|
12
8
|
def get_identity(user_id)
|
13
|
-
response =
|
14
|
-
base_url:
|
9
|
+
response = GlobusClient.instance.get(
|
10
|
+
base_url: GlobusClient.config.auth_url,
|
15
11
|
path: '/v2/api/identities',
|
16
12
|
params: { usernames: user_id }
|
17
13
|
)
|
@@ -30,9 +26,5 @@ class GlobusClient
|
|
30
26
|
def get_identity_id(user_id)
|
31
27
|
get_identity(user_id)['id']
|
32
28
|
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
attr_reader :client
|
37
29
|
end
|
38
30
|
end
|
data/lib/globus_client.rb
CHANGED
@@ -140,7 +140,7 @@ class GlobusClient # rubocop:disable Metrics/ClassLength
|
|
140
140
|
end
|
141
141
|
|
142
142
|
def mkdir(...)
|
143
|
-
Endpoint.new(
|
143
|
+
Endpoint.new(...).tap do |endpoint|
|
144
144
|
endpoint.mkdir
|
145
145
|
endpoint.allow_writes
|
146
146
|
end
|
@@ -148,13 +148,13 @@ class GlobusClient # rubocop:disable Metrics/ClassLength
|
|
148
148
|
|
149
149
|
def disallow_writes(...)
|
150
150
|
Endpoint
|
151
|
-
.new(
|
151
|
+
.new(...)
|
152
152
|
.disallow_writes
|
153
153
|
end
|
154
154
|
|
155
155
|
def delete_access_rule(...)
|
156
156
|
Endpoint
|
157
|
-
.new(
|
157
|
+
.new(...)
|
158
158
|
.delete_access_rule
|
159
159
|
end
|
160
160
|
|
@@ -163,37 +163,37 @@ class GlobusClient # rubocop:disable Metrics/ClassLength
|
|
163
163
|
# `Endpoint#list_files`
|
164
164
|
def list_files(**keywords, &)
|
165
165
|
Endpoint
|
166
|
-
.new(
|
166
|
+
.new(**keywords)
|
167
167
|
.list_files(&)
|
168
168
|
end
|
169
169
|
|
170
170
|
def file_count(...)
|
171
171
|
Endpoint
|
172
|
-
.new(
|
172
|
+
.new(...)
|
173
173
|
.list_files { |files| return files.count }
|
174
174
|
end
|
175
175
|
|
176
176
|
def total_size(...)
|
177
177
|
Endpoint
|
178
|
-
.new(
|
178
|
+
.new(...)
|
179
179
|
.list_files { |files| return files.sum(&:size) }
|
180
180
|
end
|
181
181
|
|
182
182
|
def get_filenames(...)
|
183
183
|
Endpoint
|
184
|
-
.new(
|
184
|
+
.new(...)
|
185
185
|
.list_files { |files| return files.map(&:name) }
|
186
186
|
end
|
187
187
|
|
188
188
|
def has_files?(...)
|
189
189
|
Endpoint
|
190
|
-
.new(
|
190
|
+
.new(...)
|
191
191
|
.has_files?
|
192
192
|
end
|
193
193
|
|
194
194
|
def user_valid?(...)
|
195
195
|
Identity
|
196
|
-
.new
|
196
|
+
.new
|
197
197
|
.valid?(...)
|
198
198
|
end
|
199
199
|
|
@@ -230,7 +230,7 @@ class GlobusClient # rubocop:disable Metrics/ClassLength
|
|
230
230
|
|
231
231
|
# if unauthorized, token has likely expired. try to get a new token and then retry the same request(s).
|
232
232
|
if response.status == 401
|
233
|
-
config.token = Authenticator.token
|
233
|
+
config.token = Authenticator.token
|
234
234
|
response = yield
|
235
235
|
end
|
236
236
|
|
metadata
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: globus_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Collier
|
8
8
|
- Laura Wrubel
|
9
9
|
- Mike Giarlo
|
10
|
-
autorequire:
|
11
10
|
bindir: exe
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2025-02-18 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: activesupport
|
@@ -19,9 +18,6 @@ dependencies:
|
|
19
18
|
- - ">="
|
20
19
|
- !ruby/object:Gem::Version
|
21
20
|
version: '4.2'
|
22
|
-
- - "<"
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version: '8'
|
25
21
|
type: :runtime
|
26
22
|
prerelease: false
|
27
23
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,9 +25,6 @@ dependencies:
|
|
29
25
|
- - ">="
|
30
26
|
- !ruby/object:Gem::Version
|
31
27
|
version: '4.2'
|
32
|
-
- - "<"
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '8'
|
35
28
|
- !ruby/object:Gem::Dependency
|
36
29
|
name: faraday
|
37
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,7 +99,6 @@ metadata:
|
|
106
99
|
source_code_uri: https://github.com/sul-dlss/globus_client
|
107
100
|
changelog_uri: https://github.com/sul-dlss/globus_client/releases
|
108
101
|
rubygems_mfa_required: 'true'
|
109
|
-
post_install_message:
|
110
102
|
rdoc_options: []
|
111
103
|
require_paths:
|
112
104
|
- lib
|
@@ -121,8 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
113
|
- !ruby/object:Gem::Version
|
122
114
|
version: '0'
|
123
115
|
requirements: []
|
124
|
-
rubygems_version: 3.
|
125
|
-
signing_key:
|
116
|
+
rubygems_version: 3.6.3
|
126
117
|
specification_version: 4
|
127
118
|
summary: Interface for interacting with the Globus API.
|
128
119
|
test_files: []
|