mais_orcid_client 0.3.0 → 0.4.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: 5f67823f01c96aa641315a8d64c463bc469c18d746ad5fd05a449a66f3c63925
4
- data.tar.gz: 2f1435dabf75dd8c0956771f4519f978f0b745511310d3bfdc978bb0bf4bafb0
3
+ metadata.gz: ddc18f86e894ccbe78b835023154bda7b47bfea027bbac35e2639ce780691183
4
+ data.tar.gz: 4ca18413e81bf9ee03f731c8b799fc30095b29de13e1e91e5c662b521dc21f1d
5
5
  SHA512:
6
- metadata.gz: '083990f9b00f45ee537c8f07ea34450160a6b161167345a9e058cacb08fcb68b3c4c710877ae03aefe6f02729d48345536ecba981e9784697646ad6a89857636'
7
- data.tar.gz: 93b51cbc03f7f5e2f8ea8e664cda30c07f817dbe592f0610ff69bfef1c0cbc50218122bb81d1e5a5bd631f5e99c12d4c82bca15add09c8d2a68fcf4f83238c78
6
+ metadata.gz: b66a9f5531913fe22f347f53f6f872b9292c98bae7a1b0cf47f85f058b8c32df57d7226ba112ca5f7a38e9e95d1d704d9e54704cd4ae0fb2664a02f8973807ed
7
+ data.tar.gz: b13aaef08ca495384919ad30db4bb666611cfbbcc5a7629f0a747e3537694224b9d008370d19ddad622467475c9ced50d8f9cce3d5f703781e0dbf253b0e3bfe
data/.rubocop.yml CHANGED
@@ -1,18 +1,354 @@
1
- inherit_mode:
2
- merge:
3
- - Exclude
4
-
5
1
  require:
6
- - standard
7
- - standard-custom
8
- - standard-performance
2
+ - rubocop-capybara
3
+ - rubocop-factory_bot
9
4
  - rubocop-performance
10
5
  - rubocop-rspec
6
+ - rubocop-rspec_rails
7
+
8
+ AllCops:
9
+ TargetRubyVersion: 3.2
10
+ DisplayCopNames: true
11
+ SuggestExtensions: false
12
+ Exclude:
13
+ - bin/**
14
+ - vendor/bundle/**/*
15
+
16
+ # Per team developer playbook
17
+ RSpec/MultipleMemoizedHelpers:
18
+ Enabled: false
19
+
20
+ RSpec/BeEq: # new in 2.9.0
21
+ Enabled: true
22
+ RSpec/BeNil: # new in 2.9.0
23
+ Enabled: true
24
+ RSpec/ChangeByZero: # new in 2.11
25
+ Enabled: true
26
+ RSpec/ClassCheck: # new in 2.13
27
+ Enabled: true
28
+ RSpec/ExcessiveDocstringSpacing: # new in 2.5
29
+ Enabled: true
30
+ RSpec/IdenticalEqualityAssertion: # new in 2.4
31
+ Enabled: true
32
+ RSpec/NoExpectationExample: # new in 2.13
33
+ Enabled: true
34
+ RSpec/SortMetadata: # new in 2.14
35
+ Enabled: true
36
+ RSpec/SubjectDeclaration: # new in 2.5
37
+ Enabled: true
38
+ RSpec/VerifiedDoubleReference: # new in 2.10.0
39
+ Enabled: true
40
+ Capybara/NegationMatcher: # new in 2.14
41
+ Enabled: true
42
+ Capybara/SpecificActions: # new in 2.14
43
+ Enabled: true
44
+ Capybara/SpecificFinders: # new in 2.13
45
+ Enabled: true
46
+ Capybara/SpecificMatcher: # new in 2.12
47
+ Enabled: true
48
+ FactoryBot/ConsistentParenthesesStyle: # new in 2.14
49
+ Enabled: true
50
+ FactoryBot/SyntaxMethods: # new in 2.7
51
+ Enabled: true
52
+ RSpecRails/AvoidSetupHook: # new in 2.4
53
+ Enabled: true
54
+ RSpecRails/HaveHttpStatus: # new in 2.12
55
+ Enabled: true
56
+ RSpecRails/InferredSpecType: # new in 2.14
57
+ Enabled: true
58
+
59
+ RSpec/MultipleExpectations:
60
+ Enabled: false
11
61
 
12
- inherit_gem:
13
- standard: config/base.yml
14
- standard-performance: config/base.yml
15
- standard-custom: config/base.yml
62
+ Capybara/MatchStyle: # new in 2.17
63
+ Enabled: true
64
+ FactoryBot/AssociationStyle: # new in 2.23
65
+ Enabled: true
66
+ FactoryBot/FactoryAssociationWithStrategy: # new in 2.23
67
+ Enabled: true
68
+ FactoryBot/FactoryNameStyle: # new in 2.16
69
+ Enabled: true
70
+ FactoryBot/RedundantFactoryOption: # new in 2.23
71
+ Enabled: true
72
+ RSpec/BeEmpty: # new in 2.20
73
+ Enabled: true
74
+ RSpec/ContainExactly: # new in 2.19
75
+ Enabled: true
76
+ RSpec/DuplicatedMetadata: # new in 2.16
77
+ Enabled: true
78
+ RSpec/IndexedLet: # new in 2.20
79
+ Enabled: true
80
+ RSpec/MatchArray: # new in 2.19
81
+ Enabled: true
82
+ RSpec/PendingWithoutReason: # new in 2.16
83
+ Enabled: true
84
+ RSpec/RedundantAround: # new in 2.19
85
+ Enabled: true
86
+ RSpec/SkipBlockInsideExample: # new in 2.19
87
+ Enabled: true
88
+ RSpecRails/MinitestAssertions: # new in 2.17
89
+ Enabled: true
90
+ RSpecRails/TravelAround: # new in 2.19
91
+ Enabled: true
16
92
 
17
- inherit_from:
18
- - .rubocop/custom.yml
93
+ Gemspec/DeprecatedAttributeAssignment: # new in 1.30
94
+ Enabled: true
95
+ Gemspec/DevelopmentDependencies: # new in 1.44
96
+ Enabled: false
97
+ Gemspec/RequireMFA: # new in 1.23
98
+ Enabled: true
99
+ Layout/LineContinuationLeadingSpace: # new in 1.31
100
+ Enabled: true
101
+ Layout/LineContinuationSpacing: # new in 1.31
102
+ Enabled: true
103
+ Layout/LineEndStringConcatenationIndentation: # new in 1.18
104
+ Enabled: true
105
+ Layout/SpaceBeforeBrackets: # new in 1.7
106
+ Enabled: true
107
+ Lint/AmbiguousAssignment: # new in 1.7
108
+ Enabled: true
109
+ Lint/AmbiguousOperatorPrecedence: # new in 1.21
110
+ Enabled: true
111
+ Lint/AmbiguousRange: # new in 1.19
112
+ Enabled: true
113
+ Lint/ConstantOverwrittenInRescue: # new in 1.31
114
+ Enabled: true
115
+ Lint/DeprecatedConstants: # new in 1.8
116
+ Enabled: true
117
+ Lint/DuplicateBranch: # new in 1.3
118
+ Enabled: true
119
+ Lint/DuplicateMagicComment: # new in 1.37
120
+ Enabled: true
121
+ Lint/DuplicateMatchPattern: # new in 1.50
122
+ Enabled: true
123
+ Lint/DuplicateRegexpCharacterClassElement: # new in 1.1
124
+ Enabled: true
125
+ Lint/EmptyBlock: # new in 1.1
126
+ Enabled: true
127
+ Lint/EmptyClass: # new in 1.3
128
+ Enabled: true
129
+ Lint/EmptyInPattern: # new in 1.16
130
+ Enabled: true
131
+ Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21
132
+ Enabled: true
133
+ Lint/ItWithoutArgumentsInBlock: # new in 1.59
134
+ Enabled: true
135
+ Lint/LambdaWithoutLiteralBlock: # new in 1.8
136
+ Enabled: true
137
+ Lint/LiteralAssignmentInCondition: # new in 1.58
138
+ Enabled: true
139
+ Lint/MixedCaseRange: # new in 1.53
140
+ Enabled: true
141
+ Lint/NoReturnInBeginEndBlocks: # new in 1.2
142
+ Enabled: true
143
+ Lint/NonAtomicFileOperation: # new in 1.31
144
+ Enabled: true
145
+ Lint/NumberedParameterAssignment: # new in 1.9
146
+ Enabled: true
147
+ Lint/OrAssignmentToConstant: # new in 1.9
148
+ Enabled: true
149
+ Lint/RedundantDirGlobSort: # new in 1.8
150
+ Enabled: true
151
+ Lint/RedundantRegexpQuantifiers: # new in 1.53
152
+ Enabled: true
153
+ Lint/RefinementImportMethods: # new in 1.27
154
+ Enabled: true
155
+ Lint/RequireRangeParentheses: # new in 1.32
156
+ Enabled: true
157
+ Lint/RequireRelativeSelfPath: # new in 1.22
158
+ Enabled: true
159
+ Lint/SymbolConversion: # new in 1.9
160
+ Enabled: true
161
+ Lint/ToEnumArguments: # new in 1.1
162
+ Enabled: true
163
+ Lint/TripleQuotes: # new in 1.9
164
+ Enabled: true
165
+ Lint/UnexpectedBlockArity: # new in 1.5
166
+ Enabled: true
167
+ Lint/UnmodifiedReduceAccumulator: # new in 1.1
168
+ Enabled: true
169
+ Lint/UselessRescue: # new in 1.43
170
+ Enabled: true
171
+ Lint/UselessRuby2Keywords: # new in 1.23
172
+ Enabled: true
173
+ Metrics/CollectionLiteralLength: # new in 1.47
174
+ Enabled: true
175
+ Naming/BlockForwarding: # new in 1.24
176
+ Enabled: true
177
+ Security/CompoundHash: # new in 1.28
178
+ Enabled: true
179
+ Security/IoMethods: # new in 1.22
180
+ Enabled: true
181
+ Style/ArgumentsForwarding: # new in 1.1
182
+ Enabled: true
183
+ Style/ArrayIntersect: # new in 1.40
184
+ Enabled: true
185
+ Style/CollectionCompact: # new in 1.2
186
+ Enabled: true
187
+ Style/ComparableClamp: # new in 1.44
188
+ Enabled: true
189
+ Style/ConcatArrayLiterals: # new in 1.41
190
+ Enabled: true
191
+ Style/DataInheritance: # new in 1.49
192
+ Enabled: true
193
+ Style/DirEmpty: # new in 1.48
194
+ Enabled: true
195
+ Style/DocumentDynamicEvalDefinition: # new in 1.1
196
+ Enabled: true
197
+ Style/EmptyHeredoc: # new in 1.32
198
+ Enabled: true
199
+ Style/EndlessMethod: # new in 1.8
200
+ Enabled: true
201
+ Style/EnvHome: # new in 1.29
202
+ Enabled: true
203
+ Style/ExactRegexpMatch: # new in 1.51
204
+ Enabled: true
205
+ Style/FetchEnvVar: # new in 1.28
206
+ Enabled: true
207
+ Style/FileEmpty: # new in 1.48
208
+ Enabled: true
209
+ Style/FileRead: # new in 1.24
210
+ Enabled: true
211
+ Style/FileWrite: # new in 1.24
212
+ Enabled: true
213
+ Style/HashConversion: # new in 1.10
214
+ Enabled: true
215
+ Style/HashExcept: # new in 1.7
216
+ Enabled: true
217
+ Style/IfWithBooleanLiteralBranches: # new in 1.9
218
+ Enabled: true
219
+ Style/InPatternThen: # new in 1.16
220
+ Enabled: true
221
+ Style/MagicCommentFormat: # new in 1.35
222
+ Enabled: true
223
+ Style/MapCompactWithConditionalBlock: # new in 1.30
224
+ Enabled: true
225
+ Style/MapToHash: # new in 1.24
226
+ Enabled: true
227
+ Style/MapToSet: # new in 1.42
228
+ Enabled: true
229
+ Style/MinMaxComparison: # new in 1.42
230
+ Enabled: true
231
+ Style/MultilineInPatternThen: # new in 1.16
232
+ Enabled: true
233
+ Style/NegatedIfElseCondition: # new in 1.2
234
+ Enabled: true
235
+ Style/NestedFileDirname: # new in 1.26
236
+ Enabled: true
237
+ Style/NilLambda: # new in 1.3
238
+ Enabled: true
239
+ Style/NumberedParameters: # new in 1.22
240
+ Enabled: true
241
+ Style/NumberedParametersLimit: # new in 1.22
242
+ Enabled: true
243
+ Style/ObjectThen: # new in 1.28
244
+ Enabled: true
245
+ Style/OpenStructUse: # new in 1.23
246
+ Enabled: true
247
+ Style/OperatorMethodCall: # new in 1.37
248
+ Enabled: true
249
+ Style/QuotedSymbols: # new in 1.16
250
+ Enabled: true
251
+ Style/RedundantArgument: # new in 1.4
252
+ Enabled: true
253
+ Style/RedundantArrayConstructor: # new in 1.52
254
+ Enabled: true
255
+ Style/RedundantConstantBase: # new in 1.40
256
+ Enabled: true
257
+ Style/RedundantCurrentDirectoryInPath: # new in 1.53
258
+ Enabled: true
259
+ Style/RedundantDoubleSplatHashBraces: # new in 1.41
260
+ Enabled: true
261
+ Style/RedundantEach: # new in 1.38
262
+ Enabled: true
263
+ Style/RedundantFilterChain: # new in 1.52
264
+ Enabled: true
265
+ Style/RedundantHeredocDelimiterQuotes: # new in 1.45
266
+ Enabled: true
267
+ Style/RedundantInitialize: # new in 1.27
268
+ Enabled: true
269
+ Style/RedundantLineContinuation: # new in 1.49
270
+ Enabled: true
271
+ Style/RedundantRegexpArgument: # new in 1.53
272
+ Enabled: true
273
+ Style/RedundantRegexpConstructor: # new in 1.52
274
+ Enabled: true
275
+ Style/RedundantSelfAssignmentBranch: # new in 1.19
276
+ Enabled: true
277
+ Style/RedundantStringEscape: # new in 1.37
278
+ Enabled: true
279
+ Style/ReturnNilInPredicateMethodDefinition: # new in 1.53
280
+ Enabled: true
281
+ Style/SelectByRegexp: # new in 1.22
282
+ Enabled: true
283
+ Style/SingleLineDoEndBlock: # new in 1.57
284
+ Enabled: true
285
+ Style/StringChars: # new in 1.12
286
+ Enabled: true
287
+ Style/SuperWithArgsParentheses: # new in 1.58
288
+ Enabled: true
289
+ Style/SwapValues: # new in 1.1
290
+ Enabled: true
291
+ Style/YAMLFileRead: # new in 1.53
292
+ Enabled: true
293
+ Performance/AncestorsInclude: # new in 1.7
294
+ Enabled: true
295
+ Performance/BigDecimalWithNumericArgument: # new in 1.7
296
+ Enabled: true
297
+ Performance/BlockGivenWithExplicitBlock: # new in 1.9
298
+ Enabled: true
299
+ Performance/CollectionLiteralInLoop: # new in 1.8
300
+ Enabled: true
301
+ Performance/ConcurrentMonotonicTime: # new in 1.12
302
+ Enabled: true
303
+ Performance/ConstantRegexp: # new in 1.9
304
+ Enabled: true
305
+ Performance/MapCompact: # new in 1.11
306
+ Enabled: true
307
+ Performance/MapMethodChain: # new in 1.19
308
+ Enabled: true
309
+ Performance/MethodObjectAsBlock: # new in 1.9
310
+ Enabled: true
311
+ Performance/RedundantEqualityComparisonBlock: # new in 1.10
312
+ Enabled: true
313
+ Performance/RedundantSortBlock: # new in 1.7
314
+ Enabled: true
315
+ Performance/RedundantSplitRegexpArgument: # new in 1.10
316
+ Enabled: true
317
+ Performance/RedundantStringChars: # new in 1.7
318
+ Enabled: true
319
+ Performance/ReverseFirst: # new in 1.7
320
+ Enabled: true
321
+ Performance/SortReverse: # new in 1.7
322
+ Enabled: true
323
+ Performance/Squeeze: # new in 1.7
324
+ Enabled: true
325
+ Performance/StringIdentifierArgument: # new in 1.13
326
+ Enabled: true
327
+ Performance/StringInclude: # new in 1.7
328
+ Enabled: true
329
+ Performance/Sum: # new in 1.8
330
+ Enabled: true
331
+ Capybara/ClickLinkOrButtonStyle: # new in 2.19
332
+ Enabled: true
333
+ Capybara/RedundantWithinFind: # new in 2.20
334
+ Enabled: true
335
+ Capybara/RSpec/HaveSelector: # new in 2.19
336
+ Enabled: true
337
+ Capybara/RSpec/PredicateMatcher: # new in 2.19
338
+ Enabled: true
339
+ FactoryBot/IdSequence: # new in <<next>>
340
+ Enabled: true
341
+ RSpec/EmptyMetadata: # new in 2.24
342
+ Enabled: true
343
+ RSpec/Eq: # new in 2.24
344
+ Enabled: true
345
+ RSpec/MetadataStyle: # new in 2.24
346
+ Enabled: true
347
+ RSpec/ReceiveMessages: # new in 2.23
348
+ Enabled: true
349
+ RSpec/SpecFilePathFormat: # new in 2.24
350
+ Enabled: true
351
+ RSpec/SpecFilePathSuffix: # new in 2.24
352
+ Enabled: true
353
+ RSpecRails/NegationBeValid: # new in 2.23
354
+ Enabled: true
data/Gemfile CHANGED
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- source "https://rubygems.org"
3
+ source 'https://rubygems.org'
4
4
 
5
5
  # Specify your gem's dependencies in mais_orcid_client.gemspec
6
6
  gemspec
7
7
 
8
- gem "byebug"
8
+ gem 'byebug'
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mais_orcid_client (0.3.0)
5
- activesupport (>= 4.2, < 8)
4
+ mais_orcid_client (0.4.0)
5
+ activesupport (>= 4.2)
6
6
  faraday
7
7
  faraday-retry
8
8
  oauth2
@@ -11,36 +11,56 @@ PATH
11
11
  GEM
12
12
  remote: https://rubygems.org/
13
13
  specs:
14
- activesupport (7.0.6)
15
- concurrent-ruby (~> 1.0, >= 1.0.2)
14
+ activesupport (8.0.1)
15
+ base64
16
+ benchmark (>= 0.3)
17
+ bigdecimal
18
+ concurrent-ruby (~> 1.0, >= 1.3.1)
19
+ connection_pool (>= 2.2.5)
20
+ drb
16
21
  i18n (>= 1.6, < 2)
22
+ logger (>= 1.4.2)
17
23
  minitest (>= 5.1)
18
- tzinfo (~> 2.0)
19
- addressable (2.8.4)
20
- public_suffix (>= 2.0.2, < 6.0)
24
+ securerandom (>= 0.3)
25
+ tzinfo (~> 2.0, >= 2.0.5)
26
+ uri (>= 0.13.1)
27
+ addressable (2.8.7)
28
+ public_suffix (>= 2.0.2, < 7.0)
21
29
  ast (2.4.2)
30
+ base64 (0.2.0)
31
+ benchmark (0.4.0)
32
+ bigdecimal (3.1.9)
22
33
  byebug (11.1.3)
23
- concurrent-ruby (1.2.2)
24
- crack (0.4.5)
34
+ concurrent-ruby (1.3.5)
35
+ connection_pool (2.5.0)
36
+ crack (1.0.0)
37
+ bigdecimal
25
38
  rexml
26
- diff-lcs (1.5.0)
27
- docile (1.4.0)
28
- faraday (2.7.10)
29
- faraday-net_http (>= 2.0, < 3.1)
30
- ruby2_keywords (>= 0.0.4)
31
- faraday-net_http (3.0.2)
32
- faraday-retry (2.2.0)
39
+ diff-lcs (1.5.1)
40
+ docile (1.4.1)
41
+ drb (2.2.1)
42
+ faraday (2.12.2)
43
+ faraday-net_http (>= 2.0, < 3.5)
44
+ json
45
+ logger
46
+ faraday-net_http (3.4.0)
47
+ net-http (>= 0.5.0)
48
+ faraday-retry (2.2.1)
33
49
  faraday (~> 2.0)
34
- hashdiff (1.0.1)
50
+ hashdiff (1.1.2)
35
51
  hashie (5.0.0)
36
- i18n (1.14.1)
52
+ i18n (1.14.7)
37
53
  concurrent-ruby (~> 1.0)
38
- json (2.6.3)
39
- jwt (2.7.1)
40
- language_server-protocol (3.17.0.3)
41
- lint_roller (1.1.0)
42
- minitest (5.18.1)
43
- multi_xml (0.6.0)
54
+ json (2.9.1)
55
+ jwt (2.10.1)
56
+ base64
57
+ language_server-protocol (3.17.0.4)
58
+ logger (1.6.6)
59
+ minitest (5.25.4)
60
+ multi_xml (0.7.1)
61
+ bigdecimal (~> 3.1)
62
+ net-http (0.6.0)
63
+ uri
44
64
  oauth2 (2.0.9)
45
65
  faraday (>= 0.17.3, < 3.0)
46
66
  jwt (>= 1.0, < 3.0)
@@ -48,86 +68,79 @@ GEM
48
68
  rack (>= 1.2, < 4)
49
69
  snaky_hash (~> 2.0)
50
70
  version_gem (~> 1.1)
51
- parallel (1.23.0)
52
- parser (3.2.2.3)
71
+ parallel (1.26.3)
72
+ parser (3.3.7.1)
53
73
  ast (~> 2.4.1)
54
74
  racc
55
- public_suffix (5.0.3)
56
- racc (1.7.1)
57
- rack (3.0.8)
75
+ public_suffix (6.0.1)
76
+ racc (1.8.1)
77
+ rack (3.1.9)
58
78
  rainbow (3.1.1)
59
- rake (13.0.6)
60
- regexp_parser (2.8.1)
61
- rexml (3.2.5)
62
- rspec (3.12.0)
63
- rspec-core (~> 3.12.0)
64
- rspec-expectations (~> 3.12.0)
65
- rspec-mocks (~> 3.12.0)
66
- rspec-core (3.12.2)
67
- rspec-support (~> 3.12.0)
68
- rspec-expectations (3.12.3)
79
+ rake (13.2.1)
80
+ regexp_parser (2.10.0)
81
+ rexml (3.4.0)
82
+ rspec (3.13.0)
83
+ rspec-core (~> 3.13.0)
84
+ rspec-expectations (~> 3.13.0)
85
+ rspec-mocks (~> 3.13.0)
86
+ rspec-core (3.13.3)
87
+ rspec-support (~> 3.13.0)
88
+ rspec-expectations (3.13.3)
69
89
  diff-lcs (>= 1.2.0, < 2.0)
70
- rspec-support (~> 3.12.0)
71
- rspec-mocks (3.12.6)
90
+ rspec-support (~> 3.13.0)
91
+ rspec-mocks (3.13.2)
72
92
  diff-lcs (>= 1.2.0, < 2.0)
73
- rspec-support (~> 3.12.0)
74
- rspec-support (3.12.1)
75
- rubocop (1.52.1)
93
+ rspec-support (~> 3.13.0)
94
+ rspec-support (3.13.2)
95
+ rubocop (1.71.2)
76
96
  json (~> 2.3)
97
+ language_server-protocol (>= 3.17.0)
77
98
  parallel (~> 1.10)
78
- parser (>= 3.2.2.3)
99
+ parser (>= 3.3.0.2)
79
100
  rainbow (>= 2.2.2, < 4.0)
80
- regexp_parser (>= 1.8, < 3.0)
81
- rexml (>= 3.2.5, < 4.0)
82
- rubocop-ast (>= 1.28.0, < 2.0)
101
+ regexp_parser (>= 2.9.3, < 3.0)
102
+ rubocop-ast (>= 1.38.0, < 2.0)
83
103
  ruby-progressbar (~> 1.7)
84
- unicode-display_width (>= 2.4.0, < 3.0)
85
- rubocop-ast (1.29.0)
86
- parser (>= 3.2.1.0)
87
- rubocop-capybara (2.18.0)
104
+ unicode-display_width (>= 2.4.0, < 4.0)
105
+ rubocop-ast (1.38.0)
106
+ parser (>= 3.3.1.0)
107
+ rubocop-capybara (2.21.0)
88
108
  rubocop (~> 1.41)
89
- rubocop-factory_bot (2.23.1)
90
- rubocop (~> 1.33)
91
- rubocop-performance (1.18.0)
92
- rubocop (>= 1.7.0, < 2.0)
93
- rubocop-ast (>= 0.4.0)
94
- rubocop-rspec (2.22.0)
95
- rubocop (~> 1.33)
96
- rubocop-capybara (~> 2.17)
97
- rubocop-factory_bot (~> 2.22)
109
+ rubocop-factory_bot (2.26.1)
110
+ rubocop (~> 1.61)
111
+ rubocop-performance (1.23.1)
112
+ rubocop (>= 1.48.1, < 2.0)
113
+ rubocop-ast (>= 1.31.1, < 2.0)
114
+ rubocop-rspec (3.4.0)
115
+ rubocop (~> 1.61)
116
+ rubocop-rspec_rails (2.30.0)
117
+ rubocop (~> 1.61)
118
+ rubocop-rspec (~> 3, >= 3.0.1)
98
119
  ruby-progressbar (1.13.0)
99
- ruby2_keywords (0.0.5)
120
+ securerandom (0.4.1)
100
121
  simplecov (0.22.0)
101
122
  docile (~> 1.1)
102
123
  simplecov-html (~> 0.11)
103
124
  simplecov_json_formatter (~> 0.1)
104
- simplecov-html (0.12.3)
125
+ simplecov-html (0.13.1)
105
126
  simplecov_json_formatter (0.1.4)
106
127
  snaky_hash (2.0.1)
107
128
  hashie
108
129
  version_gem (~> 1.1, >= 1.1.1)
109
- standard (1.30.1)
110
- language_server-protocol (~> 3.17.0.2)
111
- lint_roller (~> 1.0)
112
- rubocop (~> 1.52.0)
113
- standard-custom (~> 1.0.0)
114
- standard-performance (~> 1.1.0)
115
- standard-custom (1.0.2)
116
- lint_roller (~> 1.0)
117
- rubocop (~> 1.50)
118
- standard-performance (1.1.2)
119
- lint_roller (~> 1.1)
120
- rubocop-performance (~> 1.18.0)
121
130
  tzinfo (2.0.6)
122
131
  concurrent-ruby (~> 1.0)
123
- unicode-display_width (2.4.2)
124
- vcr (6.2.0)
125
- version_gem (1.1.3)
126
- webmock (3.18.1)
132
+ unicode-display_width (3.1.4)
133
+ unicode-emoji (~> 4.0, >= 4.0.4)
134
+ unicode-emoji (4.0.4)
135
+ uri (1.0.2)
136
+ vcr (6.3.1)
137
+ base64
138
+ version_gem (1.1.4)
139
+ webmock (3.25.0)
127
140
  addressable (>= 2.8.0)
128
141
  crack (>= 0.3.2)
129
142
  hashdiff (>= 0.4.0, < 2.0.0)
130
- zeitwerk (2.6.8)
143
+ zeitwerk (2.7.1)
131
144
 
132
145
  PLATFORMS
133
146
  x86_64-darwin-19
@@ -141,9 +154,13 @@ DEPENDENCIES
141
154
  mais_orcid_client!
142
155
  rake (~> 13.0)
143
156
  rspec (~> 3.0)
157
+ rubocop
158
+ rubocop-capybara
159
+ rubocop-factory_bot
160
+ rubocop-performance
144
161
  rubocop-rspec
162
+ rubocop-rspec_rails
145
163
  simplecov
146
- standard
147
164
  vcr
148
165
  webmock
149
166
 
data/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/mais_orcid_client.svg)](https://badge.fury.io/rb/mais_orcid_client)
2
2
  [![CircleCI](https://circleci.com/gh/sul-dlss/mais_orcid_client.svg?style=svg)](https://circleci.com/gh/sul-dlss/mais_orcid_client)
3
- [![Maintainability](https://api.codeclimate.com/v1/badges/25b4a4111f831121dda5/maintainability)](https://codeclimate.com/github/sul-dlss/mais_orcid_client/maintainability)
4
- [![Test Coverage](https://api.codeclimate.com/v1/badges/25b4a4111f831121dda5/test_coverage)](https://codeclimate.com/github/sul-dlss/mais_orcid_client/test_coverage)
3
+ [![codecov](https://codecov.io/github/sul-dlss/mais_orcid_client/graph/badge.svg?token=A6B03FJ981)](https://codecov.io/github/sul-dlss/mais_orcid_client)
5
4
 
6
5
  # mais_orcid_client
7
6
  API client for accessing MAIS's ORCID endpoints.
data/Rakefile CHANGED
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
5
- require "rubocop/rake_task"
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
5
+ require 'rubocop/rake_task'
6
6
 
7
7
  RSpec::Core::RakeTask.new(:spec)
8
8
  RuboCop::RakeTask.new
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ class MaisOrcidClient
4
+ # The namespace for the "login" command
5
+ class Authenticator
6
+ attr_reader :client_id, :client_secret, :base_url
7
+
8
+ def self.token(client_id, client_secret, base_url)
9
+ new(client_id, client_secret, base_url).token
10
+ end
11
+
12
+ def initialize(client_id, client_secret, base_url)
13
+ @client_id = client_id
14
+ @client_secret = client_secret
15
+ @base_url = base_url
16
+ end
17
+
18
+ # @return [String]
19
+ def token
20
+ client = OAuth2::Client.new(client_id, client_secret, site: base_url,
21
+ token_url: '/api/oauth/token',
22
+ authorize_url: '/api/oauth/authorize',
23
+ auth_scheme: :request_body)
24
+ client.client_credentials.get_token.token
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ class MaisOrcidClient
4
+ # Wraps API operations to request new access token if expired
5
+ class TokenWrapper
6
+ def self.refresh(config)
7
+ yield
8
+ rescue UnexpectedResponse::UnauthorizedError
9
+ config.token = Authenticator.token(config.client_id, config.client_secret, config.base_url)
10
+ yield
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ class MaisOrcidClient
4
+ # Handles unexpected responses when communicating with Mais
5
+ class UnexpectedResponse
6
+ # Error raised when the Mais API returns a 401 Unauthorized
7
+ class UnauthorizedError < StandardError; end
8
+
9
+ # Error raised when the Mais API returns a 500 error
10
+ class ServerError < StandardError; end
11
+
12
+ # Error raised when the Mais API returns a response with an error message in it
13
+ class ResponseError < StandardError; end
14
+
15
+ def self.call(response)
16
+ case response.status
17
+ when 401
18
+ raise UnauthorizedError, "There was a problem with the access token: #{response.body}"
19
+ when 500
20
+ raise ServerError, "Mais server error: #{response.body}"
21
+ else
22
+ raise StandardError, "Unexpected response: #{response.status} #{response.body}"
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class MaisOrcidClient
4
- VERSION = "0.3.0"
4
+ VERSION = '0.4.0'
5
5
  end
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "active_support/core_ext/module/delegation"
4
- require "active_support/core_ext/hash/indifferent_access"
3
+ require 'active_support/core_ext/module/delegation'
4
+ require 'active_support/core_ext/hash/indifferent_access'
5
5
 
6
- require "faraday"
7
- require "faraday/retry"
8
- require "oauth2"
9
- require "singleton"
10
- require "zeitwerk"
6
+ require 'faraday'
7
+ require 'faraday/retry'
8
+ require 'oauth2'
9
+ require 'singleton'
10
+ require 'zeitwerk'
11
11
 
12
12
  # Load the gem's internal dependencies: use Zeitwerk instead of needing to manually require classes
13
13
  Zeitwerk::Loader.for_gem.setup
@@ -19,7 +19,7 @@ class MaisOrcidClient
19
19
  # Struct for ORCID-relating data returned from API.
20
20
  OrcidUser = Struct.new(:sunetid, :orcidid, :scope, :access_token, :last_updated) do
21
21
  def update?
22
- scope.include?("/activities/update")
22
+ scope.include?('/activities/update')
23
23
  end
24
24
  end
25
25
 
@@ -28,27 +28,36 @@ class MaisOrcidClient
28
28
  # @param client_secret [String] the client secret to authenticate with MAIS
29
29
  # @param base_url [String] the base URL for the API
30
30
  def configure(client_id:, client_secret:, base_url:)
31
- instance.base_url = base_url
32
- instance.client_id = client_id
33
- instance.client_secret = client_secret
31
+ # rubocop:disable Style/OpenStructUse
32
+ instance.config = OpenStruct.new(
33
+ token: Authenticator.token(client_id, client_secret, base_url),
34
+ client_id:,
35
+ client_secret:,
36
+ base_url:
37
+ )
38
+ # rubocop:enable Style/OpenStructUse
39
+
34
40
  self
35
41
  end
36
42
 
37
- delegate :fetch_orcid_users, :fetch_orcid_user, to: :instance
43
+ delegate :config, :fetch_orcid_users, :fetch_orcid_user, to: :instance
38
44
  end
39
45
 
40
- attr_accessor :base_url, :client_id, :client_secret
46
+ attr_accessor :config
41
47
 
42
48
  # @param [int] limit number of users requested
43
49
  # @param [int] page_size number of users per page
44
50
  # @return [Array<OrcidUser>] orcid users
51
+ # rubocop:disable Metrics/MethodLength
52
+ # rubocop:disable Metrics/AbcSize
45
53
  def fetch_orcid_users(limit: nil, page_size: nil)
46
54
  orcid_users = []
47
55
  next_page = first_page(page_size)
48
56
  loop do
49
57
  response = get_response(next_page)
50
58
  response[:results].each do |result|
51
- orcid_users << OrcidUser.new(result[:sunet_id], result[:orcid_id], result[:scope], result[:access_token], result[:last_updated])
59
+ orcid_users << OrcidUser.new(result[:sunet_id], result[:orcid_id], result[:scope], result[:access_token],
60
+ result[:last_updated])
52
61
  return orcid_users if limit && limit == orcid_users.size
53
62
  end
54
63
  # Currently next is always present, even on last page. (This may be changed in future.)
@@ -56,13 +65,15 @@ class MaisOrcidClient
56
65
  return orcid_users if last_page?(response[:links])
57
66
  end
58
67
  end
68
+ # rubocop:enable Metrics/MethodLength
69
+ # rubocop:enable Metrics/AbcSize
59
70
 
60
71
  # Fetch a user details, including scope and token, given either a SUNetID or ORCIDID
61
72
  # @param [string] sunetid of user to fetch
62
73
  # @param [orcid] orcidid of user to fetch (ignored if sunetid is also provided)
63
74
  # @return [<OrcidUser>, nil] orcid user or nil if not found
64
75
  def fetch_orcid_user(sunetid: nil, orcidid: nil)
65
- raise "must provide either a sunetid or orcidid" unless sunetid || orcidid
76
+ raise 'must provide either a sunetid or orcidid' unless sunetid || orcidid
66
77
 
67
78
  sunetid ? fetch_by_sunetid(sunetid) : fetch_by_orcidid(orcidid)
68
79
  end
@@ -94,7 +105,7 @@ class MaisOrcidClient
94
105
  end
95
106
 
96
107
  def first_page(page_size = nil)
97
- path = "/users?scope=ANY"
108
+ path = '/users?scope=ANY'
98
109
  path += "&page_size=#{page_size}" if page_size
99
110
  path
100
111
  end
@@ -103,46 +114,43 @@ class MaisOrcidClient
103
114
  links[:self] == links[:last]
104
115
  end
105
116
 
117
+ # rubocop:disable Metrics/MethodLength
106
118
  def get_response(path, allow404: false)
107
- response = conn.get("/mais/orcid/v1#{path}")
119
+ TokenWrapper.refresh(config) do
120
+ response = conn.get("/mais/orcid/v1#{path}")
108
121
 
109
- return if allow404 && response.status == 404
122
+ return if allow404 && response.status == 404
110
123
 
111
- raise "UIT MAIS ORCID User API returned #{response.status}" if response.status != 200
124
+ return UnexpectedResponse.call(response) unless response.success?
112
125
 
113
- body = JSON.parse(response.body).with_indifferent_access
114
- raise "UIT MAIS ORCID User API returned an error: #{response.body}" if body.key?(:error)
126
+ body = JSON.parse(response.body).with_indifferent_access
127
+ if body.key?(:error)
128
+ raise UnexpectedResponse::ResponseError,
129
+ "UIT MAIS ORCID User API returned an error: #{response.body}"
130
+ end
115
131
 
116
- body
132
+ body
133
+ end
117
134
  end
118
135
 
119
- # @return [Faraday::Connection]
120
136
  def conn
121
- @conn ||= begin
122
- conn = Faraday.new(url: base_url) do |faraday|
123
- faraday.request :retry, max: 3,
124
- interval: 0.5,
125
- interval_randomness: 0.5,
126
- backoff_factor: 2
127
- end
128
- conn.options.timeout = 500
129
- conn.options.open_timeout = 10
130
- conn.headers[:user_agent] = "stanford-library-sul-pub"
131
- conn.headers[:authorization] = token
132
- conn
137
+ conn = Faraday.new(url: config.base_url) do |faraday|
138
+ faraday.request :retry, max: 3,
139
+ interval: 0.5,
140
+ interval_randomness: 0.5,
141
+ backoff_factor: 2
133
142
  end
143
+ conn.options.timeout = 500
144
+ conn.options.open_timeout = 10
145
+ conn.headers[:user_agent] = 'stanford-library-sul-pub'
146
+ conn.headers[:authorization] = "Bearer #{config.token}"
147
+ conn
134
148
  end
135
-
136
- def token
137
- client = OAuth2::Client.new(client_id, client_secret, site: base_url,
138
- token_url: "/api/oauth/token", authorize_url: "/api/oauth/authorize",
139
- auth_scheme: :request_body)
140
- token = client.client_credentials.get_token
141
- "Bearer #{token.token}"
142
- end
149
+ # rubocop:enable Metrics/MethodLength
143
150
 
144
151
  # @param [string] orcidid which can include a full URI, e.g. "https://sandbox.orcid.org/0000-0002-7262-6251"
145
- # @return [string] orcidid without URI (if valid), e.g. "0000-0002-7262-6251" or empty string if none found or orcidid invalid
152
+ # @return [string] orcidid without URI (if valid), e.g. "0000-0002-7262-6251" or empty string if none found
153
+ # or orcidid invalid
146
154
  def orcidid_without_uri(orcidid)
147
155
  orcidid.match(/\d{4}-\d{4}-\d{4}-\d{3}(\d|X){1}\z/).to_s
148
156
  end
@@ -1,24 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path("lib", __dir__)
3
+ lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require "mais_orcid_client/version"
5
+ require 'mais_orcid_client/version'
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = "mais_orcid_client"
8
+ spec.name = 'mais_orcid_client'
9
9
  spec.version = MaisOrcidClient::VERSION
10
- spec.authors = ["Peter Mangiafico", "Justin Littman"]
11
- spec.email = ["pmangiafico@stanford.edu", "jlittman@stanford.edu"]
10
+ spec.authors = ['Peter Mangiafico', 'Justin Littman']
11
+ spec.email = ['pmangiafico@stanford.edu', 'jlittman@stanford.edu']
12
12
 
13
13
  spec.summary = "Interface for interacting with the MAIS's ORCID API."
14
14
  spec.description = "This provides API interaction with the MAIS's ORCID API"
15
- spec.homepage = "https://github.com/sul-dlss/mais_orcid_client"
16
- spec.required_ruby_version = ">= 3.2.0"
15
+ spec.homepage = 'https://github.com/sul-dlss/mais_orcid_client'
16
+ spec.required_ruby_version = '>= 3.2.0'
17
17
 
18
- spec.metadata["homepage_uri"] = spec.homepage
19
- spec.metadata["source_code_uri"] = "https://github.com/sul-dlss/mais_orcid_client"
20
- spec.metadata["changelog_uri"] = "https://github.com/sul-dlss/mais_orcid_client/releases"
21
- spec.metadata["rubygems_mfa_required"] = "true"
18
+ spec.metadata['homepage_uri'] = spec.homepage
19
+ spec.metadata['source_code_uri'] = 'https://github.com/sul-dlss/mais_orcid_client'
20
+ spec.metadata['changelog_uri'] = 'https://github.com/sul-dlss/mais_orcid_client/releases'
21
+ spec.metadata['rubygems_mfa_required'] = 'true'
22
22
 
23
23
  # Specify which files should be added to the gem when it is released.
24
24
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -27,22 +27,26 @@ Gem::Specification.new do |spec|
27
27
  (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
28
28
  end
29
29
  end
30
- spec.bindir = "exe"
30
+ spec.bindir = 'exe'
31
31
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
32
- spec.require_paths = ["lib"]
32
+ spec.require_paths = ['lib']
33
33
 
34
- spec.add_dependency "activesupport", ">= 4.2", "< 8"
35
- spec.add_dependency "faraday"
36
- spec.add_dependency "faraday-retry"
37
- spec.add_dependency "oauth2"
38
- spec.add_dependency "zeitwerk"
34
+ spec.add_dependency 'activesupport', '>= 4.2'
35
+ spec.add_dependency 'faraday'
36
+ spec.add_dependency 'faraday-retry'
37
+ spec.add_dependency 'oauth2'
38
+ spec.add_dependency 'zeitwerk'
39
39
 
40
- spec.add_development_dependency "rake", "~> 13.0"
41
- spec.add_development_dependency "rspec", "~> 3.0"
42
- spec.add_development_dependency "standard"
43
- spec.add_development_dependency "rubocop-rspec"
44
- spec.add_development_dependency "simplecov"
45
- spec.add_development_dependency "webmock"
46
- spec.add_development_dependency "vcr"
47
- spec.add_development_dependency "byebug"
40
+ spec.add_development_dependency 'byebug'
41
+ spec.add_development_dependency 'rake', '~> 13.0'
42
+ spec.add_development_dependency 'rspec', '~> 3.0'
43
+ spec.add_development_dependency 'rubocop'
44
+ spec.add_development_dependency 'rubocop-capybara'
45
+ spec.add_development_dependency 'rubocop-factory_bot'
46
+ spec.add_development_dependency 'rubocop-performance'
47
+ spec.add_development_dependency 'rubocop-rspec'
48
+ spec.add_development_dependency 'rubocop-rspec_rails'
49
+ spec.add_development_dependency 'simplecov'
50
+ spec.add_development_dependency 'vcr'
51
+ spec.add_development_dependency 'webmock'
48
52
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mais_orcid_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Mangiafico
8
8
  - Justin Littman
9
- autorequire:
10
9
  bindir: exe
11
10
  cert_chain: []
12
- date: 2023-07-31 00:00:00.000000000 Z
11
+ date: 2025-02-18 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activesupport
@@ -18,9 +17,6 @@ dependencies:
18
17
  - - ">="
19
18
  - !ruby/object:Gem::Version
20
19
  version: '4.2'
21
- - - "<"
22
- - !ruby/object:Gem::Version
23
- version: '8'
24
20
  type: :runtime
25
21
  prerelease: false
26
22
  version_requirements: !ruby/object:Gem::Requirement
@@ -28,9 +24,6 @@ dependencies:
28
24
  - - ">="
29
25
  - !ruby/object:Gem::Version
30
26
  version: '4.2'
31
- - - "<"
32
- - !ruby/object:Gem::Version
33
- version: '8'
34
27
  - !ruby/object:Gem::Dependency
35
28
  name: faraday
36
29
  requirement: !ruby/object:Gem::Requirement
@@ -87,6 +80,20 @@ dependencies:
87
80
  - - ">="
88
81
  - !ruby/object:Gem::Version
89
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: byebug
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
90
97
  - !ruby/object:Gem::Dependency
91
98
  name: rake
92
99
  requirement: !ruby/object:Gem::Requirement
@@ -116,7 +123,49 @@ dependencies:
116
123
  - !ruby/object:Gem::Version
117
124
  version: '3.0'
118
125
  - !ruby/object:Gem::Dependency
119
- name: standard
126
+ name: rubocop
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop-capybara
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rubocop-factory_bot
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rubocop-performance
120
169
  requirement: !ruby/object:Gem::Requirement
121
170
  requirements:
122
171
  - - ">="
@@ -144,7 +193,7 @@ dependencies:
144
193
  - !ruby/object:Gem::Version
145
194
  version: '0'
146
195
  - !ruby/object:Gem::Dependency
147
- name: simplecov
196
+ name: rubocop-rspec_rails
148
197
  requirement: !ruby/object:Gem::Requirement
149
198
  requirements:
150
199
  - - ">="
@@ -158,7 +207,7 @@ dependencies:
158
207
  - !ruby/object:Gem::Version
159
208
  version: '0'
160
209
  - !ruby/object:Gem::Dependency
161
- name: webmock
210
+ name: simplecov
162
211
  requirement: !ruby/object:Gem::Requirement
163
212
  requirements:
164
213
  - - ">="
@@ -186,7 +235,7 @@ dependencies:
186
235
  - !ruby/object:Gem::Version
187
236
  version: '0'
188
237
  - !ruby/object:Gem::Dependency
189
- name: byebug
238
+ name: webmock
190
239
  requirement: !ruby/object:Gem::Requirement
191
240
  requirements:
192
241
  - - ">="
@@ -209,14 +258,15 @@ extra_rdoc_files: []
209
258
  files:
210
259
  - ".rspec"
211
260
  - ".rubocop.yml"
212
- - ".rubocop/custom.yml"
213
- - ".standard.yml"
214
261
  - Gemfile
215
262
  - Gemfile.lock
216
263
  - LICENSE
217
264
  - README.md
218
265
  - Rakefile
219
266
  - lib/mais_orcid_client.rb
267
+ - lib/mais_orcid_client/authenticator.rb
268
+ - lib/mais_orcid_client/token_wrapper.rb
269
+ - lib/mais_orcid_client/unexpected_response.rb
220
270
  - lib/mais_orcid_client/version.rb
221
271
  - mais_orcid_client.gemspec
222
272
  homepage: https://github.com/sul-dlss/mais_orcid_client
@@ -226,7 +276,6 @@ metadata:
226
276
  source_code_uri: https://github.com/sul-dlss/mais_orcid_client
227
277
  changelog_uri: https://github.com/sul-dlss/mais_orcid_client/releases
228
278
  rubygems_mfa_required: 'true'
229
- post_install_message:
230
279
  rdoc_options: []
231
280
  require_paths:
232
281
  - lib
@@ -241,8 +290,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
241
290
  - !ruby/object:Gem::Version
242
291
  version: '0'
243
292
  requirements: []
244
- rubygems_version: 3.4.10
245
- signing_key:
293
+ rubygems_version: 3.6.3
246
294
  specification_version: 4
247
295
  summary: Interface for interacting with the MAIS's ORCID API.
248
296
  test_files: []
data/.rubocop/custom.yml DELETED
@@ -1,84 +0,0 @@
1
- AllCops:
2
- TargetRubyVersion: 3.1
3
- DisplayCopNames: true
4
- SuggestExtensions: false
5
- Exclude:
6
- - bin/**
7
- - vendor/bundle/**/*
8
-
9
- # Per team developer playbook
10
- RSpec/MultipleMemoizedHelpers:
11
- Enabled: false
12
-
13
- RSpec/BeEq: # new in 2.9.0
14
- Enabled: true
15
- RSpec/BeNil: # new in 2.9.0
16
- Enabled: true
17
- RSpec/ChangeByZero: # new in 2.11
18
- Enabled: true
19
- RSpec/ClassCheck: # new in 2.13
20
- Enabled: true
21
- RSpec/ExcessiveDocstringSpacing: # new in 2.5
22
- Enabled: true
23
- RSpec/IdenticalEqualityAssertion: # new in 2.4
24
- Enabled: true
25
- RSpec/NoExpectationExample: # new in 2.13
26
- Enabled: true
27
- RSpec/SortMetadata: # new in 2.14
28
- Enabled: true
29
- RSpec/SubjectDeclaration: # new in 2.5
30
- Enabled: true
31
- RSpec/VerifiedDoubleReference: # new in 2.10.0
32
- Enabled: true
33
- Capybara/NegationMatcher: # new in 2.14
34
- Enabled: true
35
- Capybara/SpecificActions: # new in 2.14
36
- Enabled: true
37
- Capybara/SpecificFinders: # new in 2.13
38
- Enabled: true
39
- Capybara/SpecificMatcher: # new in 2.12
40
- Enabled: true
41
- FactoryBot/ConsistentParenthesesStyle: # new in 2.14
42
- Enabled: true
43
- FactoryBot/SyntaxMethods: # new in 2.7
44
- Enabled: true
45
- RSpec/Rails/AvoidSetupHook: # new in 2.4
46
- Enabled: true
47
- RSpec/Rails/HaveHttpStatus: # new in 2.12
48
- Enabled: true
49
- RSpec/Rails/InferredSpecType: # new in 2.14
50
- Enabled: true
51
-
52
- RSpec/MultipleExpectations:
53
- Enabled: false
54
-
55
- Capybara/MatchStyle: # new in 2.17
56
- Enabled: true
57
- FactoryBot/AssociationStyle: # new in 2.23
58
- Enabled: true
59
- FactoryBot/FactoryAssociationWithStrategy: # new in 2.23
60
- Enabled: true
61
- FactoryBot/FactoryNameStyle: # new in 2.16
62
- Enabled: true
63
- FactoryBot/RedundantFactoryOption: # new in 2.23
64
- Enabled: true
65
- RSpec/BeEmpty: # new in 2.20
66
- Enabled: true
67
- RSpec/ContainExactly: # new in 2.19
68
- Enabled: true
69
- RSpec/DuplicatedMetadata: # new in 2.16
70
- Enabled: true
71
- RSpec/IndexedLet: # new in 2.20
72
- Enabled: true
73
- RSpec/MatchArray: # new in 2.19
74
- Enabled: true
75
- RSpec/PendingWithoutReason: # new in 2.16
76
- Enabled: true
77
- RSpec/RedundantAround: # new in 2.19
78
- Enabled: true
79
- RSpec/SkipBlockInsideExample: # new in 2.19
80
- Enabled: true
81
- RSpec/Rails/MinitestAssertions: # new in 2.17
82
- Enabled: true
83
- RSpec/Rails/TravelAround: # new in 2.19
84
- Enabled: true
data/.standard.yml DELETED
@@ -1 +0,0 @@
1
- parallel: true