globus_client 0.9.1 → 0.10.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b87c64f97dd930fde77d12e01206ceb2b81900b987d1b47d8c0feb559255ef9
4
- data.tar.gz: df241413512d952ff06fc81a7f216b79268903f5aed15147faa6f28fefa5e75d
3
+ metadata.gz: 5427a4692e19e5eedb9cd6e3e90d6951e5a4adc1135ca713ca72c81ca09f9deb
4
+ data.tar.gz: 25f9816388cf1ca0c9ff908df97f5257a246b94c20ce3ecc7fce98a4d7ca3bbe
5
5
  SHA512:
6
- metadata.gz: 6bcb102fa5457fc3f8ef38794efa9b2528c1ab608c62c54657f8d65bc0073e2d5f7e564a37f91ec111f91bfdbaa2e5900fd3f9b487896ef79069178d0c5be98c
7
- data.tar.gz: 977be8baca2ebdbcecc0d47d26ccb8b273a199252ee71a56cff3d25751dd3d5c58fd46b5a5abe57324d3005a1f699e87832df345c808a13229473c2ce30708a2
6
+ metadata.gz: 476a72181dc845cb4e3b5fa6a16cfc4962d23abdd2b058a544668969db70b9fc46d3f88afcc28e876ada57e92bf00d40bce3b5f6ec2d0567d8dbbf326c48b0c5
7
+ data.tar.gz: d89e245e9f05d6826206ac000f283f50454798771137a3727004027bee771befa498bbe01513dc4c6ba804120c544b1d5268a0886acba1b5369f34e6df9bd00f
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- globus_client (0.9.1)
4
+ globus_client (0.10.0)
5
5
  activesupport (>= 4.2, < 8)
6
6
  faraday
7
7
  faraday-retry
@@ -10,12 +10,12 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- activesupport (7.0.4.2)
13
+ activesupport (7.0.5)
14
14
  concurrent-ruby (~> 1.0, >= 1.0.2)
15
15
  i18n (>= 1.6, < 2)
16
16
  minitest (>= 5.1)
17
17
  tzinfo (~> 2.0)
18
- addressable (2.8.1)
18
+ addressable (2.8.4)
19
19
  public_suffix (>= 2.0.2, < 6.0)
20
20
  ast (2.4.2)
21
21
  byebug (11.1.3)
@@ -24,60 +24,66 @@ GEM
24
24
  rexml
25
25
  diff-lcs (1.5.0)
26
26
  docile (1.4.0)
27
- faraday (2.7.4)
27
+ faraday (2.7.7)
28
28
  faraday-net_http (>= 2.0, < 3.1)
29
29
  ruby2_keywords (>= 0.0.4)
30
30
  faraday-net_http (3.0.2)
31
- faraday-retry (2.0.0)
31
+ faraday-retry (2.2.0)
32
32
  faraday (~> 2.0)
33
33
  hashdiff (1.0.1)
34
- i18n (1.12.0)
34
+ i18n (1.14.1)
35
35
  concurrent-ruby (~> 1.0)
36
36
  json (2.6.3)
37
37
  language_server-protocol (3.17.0.3)
38
- minitest (5.17.0)
39
- parallel (1.22.1)
40
- parser (3.2.1.0)
38
+ lint_roller (1.0.0)
39
+ minitest (5.18.1)
40
+ parallel (1.23.0)
41
+ parser (3.2.2.3)
41
42
  ast (~> 2.4.1)
43
+ racc
42
44
  public_suffix (5.0.1)
45
+ racc (1.7.1)
43
46
  rainbow (3.1.1)
44
47
  rake (13.0.6)
45
- regexp_parser (2.7.0)
48
+ regexp_parser (2.8.1)
46
49
  rexml (3.2.5)
47
50
  rspec (3.12.0)
48
51
  rspec-core (~> 3.12.0)
49
52
  rspec-expectations (~> 3.12.0)
50
53
  rspec-mocks (~> 3.12.0)
51
- rspec-core (3.12.1)
54
+ rspec-core (3.12.2)
52
55
  rspec-support (~> 3.12.0)
53
- rspec-expectations (3.12.2)
56
+ rspec-expectations (3.12.3)
54
57
  diff-lcs (>= 1.2.0, < 2.0)
55
58
  rspec-support (~> 3.12.0)
56
- rspec-mocks (3.12.3)
59
+ rspec-mocks (3.12.5)
57
60
  diff-lcs (>= 1.2.0, < 2.0)
58
61
  rspec-support (~> 3.12.0)
59
62
  rspec-support (3.12.0)
60
- rubocop (1.44.1)
63
+ rubocop (1.52.1)
61
64
  json (~> 2.3)
62
65
  parallel (~> 1.10)
63
- parser (>= 3.2.0.0)
66
+ parser (>= 3.2.2.3)
64
67
  rainbow (>= 2.2.2, < 4.0)
65
68
  regexp_parser (>= 1.8, < 3.0)
66
69
  rexml (>= 3.2.5, < 4.0)
67
- rubocop-ast (>= 1.24.1, < 2.0)
70
+ rubocop-ast (>= 1.28.0, < 2.0)
68
71
  ruby-progressbar (~> 1.7)
69
72
  unicode-display_width (>= 2.4.0, < 3.0)
70
- rubocop-ast (1.26.0)
73
+ rubocop-ast (1.29.0)
71
74
  parser (>= 3.2.1.0)
72
- rubocop-capybara (2.17.1)
75
+ rubocop-capybara (2.18.0)
73
76
  rubocop (~> 1.41)
74
- rubocop-performance (1.15.2)
77
+ rubocop-factory_bot (2.23.1)
78
+ rubocop (~> 1.33)
79
+ rubocop-performance (1.18.0)
75
80
  rubocop (>= 1.7.0, < 2.0)
76
81
  rubocop-ast (>= 0.4.0)
77
- rubocop-rspec (2.18.1)
82
+ rubocop-rspec (2.22.0)
78
83
  rubocop (~> 1.33)
79
84
  rubocop-capybara (~> 2.17)
80
- ruby-progressbar (1.11.0)
85
+ rubocop-factory_bot (~> 2.22)
86
+ ruby-progressbar (1.13.0)
81
87
  ruby2_keywords (0.0.5)
82
88
  simplecov (0.22.0)
83
89
  docile (~> 1.1)
@@ -85,10 +91,17 @@ GEM
85
91
  simplecov_json_formatter (~> 0.1)
86
92
  simplecov-html (0.12.3)
87
93
  simplecov_json_formatter (0.1.4)
88
- standard (1.24.3)
94
+ standard (1.29.0)
89
95
  language_server-protocol (~> 3.17.0.2)
90
- rubocop (= 1.44.1)
91
- rubocop-performance (= 1.15.2)
96
+ lint_roller (~> 1.0)
97
+ rubocop (~> 1.52.0)
98
+ standard-custom (~> 1.0.0)
99
+ standard-performance (~> 1.1.0)
100
+ standard-custom (1.0.1)
101
+ lint_roller (~> 1.0)
102
+ standard-performance (1.1.0)
103
+ lint_roller (~> 1.0)
104
+ rubocop-performance (~> 1.18.0)
92
105
  tzinfo (2.0.6)
93
106
  concurrent-ruby (~> 1.0)
94
107
  unicode-display_width (2.4.2)
@@ -96,7 +109,7 @@ GEM
96
109
  addressable (>= 2.8.0)
97
110
  crack (>= 0.3.2)
98
111
  hashdiff (>= 0.4.0, < 2.0.0)
99
- zeitwerk (2.6.7)
112
+ zeitwerk (2.6.8)
100
113
 
101
114
  PLATFORMS
102
115
  x86_64-darwin-19
@@ -116,4 +129,4 @@ DEPENDENCIES
116
129
  webmock
117
130
 
118
131
  BUNDLED WITH
119
- 2.3.26
132
+ 2.4.13
data/README.md CHANGED
@@ -33,7 +33,7 @@ client = GlobusClient.configure(
33
33
  )
34
34
  client.mkdir(user_id: 'mjgiarlo@stanford.edu', path: 'mjgiarlo/work1234/version1')
35
35
 
36
- result = client.user_exists?('mjgiarlo@stanford.edu')
36
+ result = client.user_valid?('mjgiarlo@stanford.edu')
37
37
  ```
38
38
 
39
39
  You can also invoke methods directly on the client class, which is useful in a
@@ -7,9 +7,10 @@ class GlobusClient
7
7
  @config = config
8
8
  end
9
9
 
10
- def get_identity_id(user_id)
10
+ # @param user_id [String] the username in the form of an email addresss
11
+ # @return [Hash] id and status of Globus identity
12
+ def get_identity(user_id)
11
13
  @email = user_id
12
-
13
14
  response = lookup_identity
14
15
  UnexpectedResponse.call(response) unless response.success?
15
16
 
@@ -17,12 +18,16 @@ class GlobusClient
17
18
  extract_id(data)
18
19
  end
19
20
 
20
- def exists?(user_id)
21
- get_identity_id(user_id)
22
- true
23
- # if no active user is returned
24
- rescue RuntimeError
25
- false
21
+ # @param user_id [String] the username in the form of an email addresss
22
+ # @return [Boolean] whether the account has a valid status
23
+ def valid?(user_id)
24
+ ["used", "private", "unused"].include?(get_identity(user_id)["status"])
25
+ end
26
+
27
+ # @param user_id [String] the username in the form of an email addresss
28
+ # @return [String] UUID for Globus identity
29
+ def get_identity_id(user_id)
30
+ get_identity(user_id)["id"]
26
31
  end
27
32
 
28
33
  private
@@ -43,12 +48,7 @@ class GlobusClient
43
48
 
44
49
  def extract_id(data)
45
50
  identities = data["identities"]
46
- # Select identity with "used" or "private" status
47
- matching_users = identities.select { |id| id["username"] == @email }
48
- active_users = matching_users.select { |user| (user["status"] == "used" || user["status"] == "private") }
49
- raise "No matching active Globus user found for #{@email}." if active_users.empty?
50
-
51
- active_users.first["id"]
51
+ identities.find { |id| id["username"] == @email }
52
52
  end
53
53
  end
54
54
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class GlobusClient
4
- VERSION = "0.9.1"
4
+ VERSION = "0.10.0"
5
5
  end
data/lib/globus_client.rb CHANGED
@@ -36,7 +36,7 @@ class GlobusClient
36
36
  end
37
37
 
38
38
  delegate :config, :disallow_writes, :file_count, :list_files, :mkdir, :total_size,
39
- :user_exists?, :get_filenames, :has_files?, to: :instance
39
+ :user_valid?, :get_filenames, :has_files?, to: :instance
40
40
 
41
41
  def default_transfer_url
42
42
  "https://transfer.api.globusonline.org"
@@ -102,10 +102,10 @@ class GlobusClient
102
102
  end
103
103
  end
104
104
 
105
- def user_exists?(...)
105
+ def user_valid?(...)
106
106
  TokenWrapper.refresh(config) do
107
107
  identity = Identity.new(config)
108
- identity.exists?(...)
108
+ identity.valid?(...)
109
109
  end
110
110
  end
111
111
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: globus_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Collier
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2023-03-01 00:00:00.000000000 Z
13
+ date: 2023-06-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -209,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
209
  - !ruby/object:Gem::Version
210
210
  version: '0'
211
211
  requirements: []
212
- rubygems_version: 3.4.6
212
+ rubygems_version: 3.4.10
213
213
  signing_key:
214
214
  specification_version: 4
215
215
  summary: Interface for interacting with the Globus API.