globus_client 0.14.0 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bae9be2599dca47133561cc9f50d02118d633e973f973619bf642a890d266d7d
4
- data.tar.gz: 032a19fb8edf3b11740dd487415a98f14522daac3ae4966302376b902c787e01
3
+ metadata.gz: e189003b0a3f0592abd4fb7fabb006a3367f3cd330d83d7e46da2c2993bbbc21
4
+ data.tar.gz: 36c6ff9a70ddcfea7be6e1ca044b110adb536aa911adbb1626f5086737342d88
5
5
  SHA512:
6
- metadata.gz: f66705c5adbda9f69f8ab99b8c02ad8b16dafcf4760b0918f63191874066691c1c46211588a197629206f6e53f72b1893748bcac04594db44afeaa1f3a40706a
7
- data.tar.gz: f901d249a7b112efb537e88387aa6833759f2ec6f801277d4970a0830d7761abfe64e8a4163337ce252e2b9beb4e46410757832ecc300f649d8e21a5a6381669
6
+ metadata.gz: 02cd08266cd52d2a3dd86ded97c8ce0085832fb446223375ab69164ed087187611e184e7cb4555208a0fb30b477e6c8b0e212041073cce2a3c328ddf6412e0c3
7
+ data.tar.gz: 1d54da5c74f41e1a98ecdf0296ee948e14a9e569ed1f58a20f52c96347b1b215a4121050cef2e9c7f3d25d525a5b061e9cfe79cc8517efb1ff896cb517226962
data/.rubocop.yml CHANGED
@@ -23,5 +23,6 @@ Layout/LineLength:
23
23
 
24
24
  # Naming
25
25
  Naming/PredicateName:
26
- NamePrefix:
27
- - has
26
+ ForbiddenPrefixes:
27
+ - is_
28
+ - have_
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- globus_client (0.14.0)
5
- activesupport (>= 4.2, < 8)
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 (7.1.0)
13
+ activesupport (8.0.1)
14
14
  base64
15
+ benchmark (>= 0.3)
15
16
  bigdecimal
16
- concurrent-ruby (~> 1.0, >= 1.0.2)
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
- mutex_m
22
- tzinfo (~> 2.0)
23
- addressable (2.8.5)
24
- public_suffix (>= 2.0.2, < 6.0)
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.1.1)
27
- bigdecimal (3.1.4)
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.2.2)
30
- connection_pool (2.4.1)
31
- crack (0.4.5)
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.0)
34
- docile (1.4.0)
35
- drb (2.1.1)
36
- ruby2_keywords
37
- faraday (2.7.11)
38
- base64
39
- faraday-net_http (>= 2.0, < 3.1)
40
- ruby2_keywords (>= 0.0.4)
41
- faraday-net_http (3.0.2)
42
- faraday-retry (2.2.0)
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.0.1)
45
- i18n (1.14.1)
49
+ hashdiff (1.1.2)
50
+ i18n (1.14.7)
46
51
  concurrent-ruby (~> 1.0)
47
- json (2.6.3)
48
- language_server-protocol (3.17.0.3)
49
- minitest (5.20.0)
50
- mutex_m (0.1.2)
51
- parallel (1.23.0)
52
- parser (3.2.2.4)
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 (5.0.3)
56
- racc (1.7.1)
62
+ public_suffix (6.0.1)
63
+ racc (1.8.1)
57
64
  rainbow (3.1.1)
58
- rake (13.0.6)
59
- regexp_parser (2.8.1)
60
- rexml (3.2.6)
61
- rspec (3.12.0)
62
- rspec-core (~> 3.12.0)
63
- rspec-expectations (~> 3.12.0)
64
- rspec-mocks (~> 3.12.0)
65
- rspec-core (3.12.2)
66
- rspec-support (~> 3.12.0)
67
- rspec-expectations (3.12.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.12.0)
70
- rspec-mocks (3.12.6)
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.12.0)
73
- rspec-support (3.12.1)
74
- rubocop (1.56.4)
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.2.2.3)
85
+ parser (>= 3.3.0.2)
80
86
  rainbow (>= 2.2.2, < 4.0)
81
- regexp_parser (>= 1.8, < 3.0)
82
- rexml (>= 3.2.5, < 4.0)
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, < 3.0)
86
- rubocop-ast (1.29.0)
87
- parser (>= 3.2.1.0)
88
- rubocop-capybara (2.19.0)
89
- rubocop (~> 1.41)
90
- rubocop-factory_bot (2.24.0)
91
- rubocop (~> 1.33)
92
- rubocop-performance (1.19.1)
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
- ruby2_keywords (0.0.5)
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.12.3)
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 (2.5.0)
110
- webmock (3.19.1)
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.6.12)
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
  [![Gem Version](https://badge.fury.io/rb/globus_client.svg)](https://badge.fury.io/rb/globus_client)
2
2
  [![CircleCI](https://circleci.com/gh/sul-dlss/globus_client.svg?style=svg)](https://circleci.com/gh/sul-dlss/globus_client)
3
- [![Code Climate](https://codeclimate.com/github/sul-dlss/globus_client/badges/gpa.svg)](https://codeclimate.com/github/sul-dlss/globus_client)
4
- [![Code Climate Test Coverage](https://api.codeclimate.com/v1/badges/8e6bf1a5d3fc86a6fbd0/test_coverage)](https://codeclimate.com/github/sul-dlss/globus_client/test_coverage)
3
+ [![codecov](https://codecov.io/github/sul-dlss/globus_client/graph/badge.svg?token=ARR042OHR8)](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(GlobusClient.instance, user_id:,
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(GlobusClient.instance, user_id:,
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}"
@@ -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', '< 8'
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(client_id, client_secret, auth_url)
7
- new(client_id, client_secret, auth_url).token
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(client, path:, user_id:, notify_email: true)
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
- client.post(
36
- base_url: client.config.transfer_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
- client.delete(
61
- base_url: client.config.transfer_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 :client, :path, :user_id, :notify_email
66
+ attr_reader :path, :user_id, :notify_email
69
67
 
70
68
  def globus_identity_id
71
- Identity.new(client).get_identity_id(user_id)
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(client.config.uploads_directory, path_segments.slice(..index))
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 = client.get(
103
- base_url: client.config.transfer_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
- client.post(
143
- base_url: client.config.transfer_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
- client.put(
154
- base_url: client.config.transfer_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 = client.get(
165
- base_url: client.config.transfer_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/#{client.config.transfer_endpoint_id}"
176
+ "/v0.10/operation/endpoint/#{GlobusClient.config.transfer_endpoint_id}"
179
177
  end
180
178
 
181
179
  def access_path
182
- "/v0.10/endpoint/#{client.config.transfer_endpoint_id}/access"
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/#{client.config.transfer_endpoint_id}/access_list"
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 = client.get(
14
- base_url: client.config.auth_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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class GlobusClient
4
- VERSION = '0.14.0'
4
+ VERSION = '0.15.0'
5
5
  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(self, ...).tap do |endpoint|
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(self, ...)
151
+ .new(...)
152
152
  .disallow_writes
153
153
  end
154
154
 
155
155
  def delete_access_rule(...)
156
156
  Endpoint
157
- .new(self, ...)
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(self, **keywords)
166
+ .new(**keywords)
167
167
  .list_files(&)
168
168
  end
169
169
 
170
170
  def file_count(...)
171
171
  Endpoint
172
- .new(self, ...)
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(self, ...)
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(self, ...)
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(self, ...)
190
+ .new(...)
191
191
  .has_files?
192
192
  end
193
193
 
194
194
  def user_valid?(...)
195
195
  Identity
196
- .new(self)
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(config.client_id, config.client_secret, config.auth_url)
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.14.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: 2023-10-11 00:00:00.000000000 Z
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.4.13
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: []