preservation-client 3.5.0 → 5.0.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: 859dd579bd9f390d624b4017952f76cd4f7ee652e24cd1a3e6a26ad997df921f
4
- data.tar.gz: 210a26faa77c81accc7e694306e6b51f6ed61a6f2e4bf130a01f0e759b835792
3
+ metadata.gz: 39ea8bf13aa4ea7f31c0e1b6db7fd7949c64cf4c38d3118d27786d6fa63aa39e
4
+ data.tar.gz: 26ca36a68ebf7f529da2f6e35e9728613efbf9160ef389e867bd29f071d93390
5
5
  SHA512:
6
- metadata.gz: 1a69642114e5eae5c81bbbc5928e521b29fea8680005579ea7538ed9b9cbefc89c7ff6ce948cfcd4652e29d2f648f4643784ea2b0dbfb6dc3766a3f174db4c91
7
- data.tar.gz: 5338f001b55fc8823164b9a11798cda7dc6910178a76b87dbdd529d86bf7e483e5ed1c3565b80d15c70533b645c4d72e6bcdfdf840f11a7ccef0c49694284979
6
+ metadata.gz: cbc73fe77e36da28cc23d000da1d3fda2bd66d3b287e8ff0c71b176b970d8a83fae43d2ba1d01d03bfca5d040c17192f7b9253bfcf234d8bd2a8e1cfbe100cf5
7
+ data.tar.gz: 6a64a04556ba1d4fb3e609a2a86a1603baaaf7f1a6d669eaab9d810e3e5ff66218437db454d9be0dcdfd9e304f1271a321baf80d3f697164fb166e0ed7457237
data/.circleci/config.yml CHANGED
@@ -1,35 +1,10 @@
1
1
  version: 2.1
2
-
3
- jobs:
2
+ orbs:
3
+ ruby-rails: sul-dlss/ruby-rails@3.1.2
4
+ workflows:
4
5
  build:
5
- docker:
6
- - image: circleci/ruby:2.7.1
7
- environment:
8
- CC_TEST_REPORTER_ID: 02e8afad8d0b699828dd69b6f45b598e7317b2d9828ea23380c3a97113068a0c
9
- RAILS_ENV: test
10
- steps:
11
- - checkout
12
- - run:
13
- name: Install Bundler
14
- command: gem install bundler
15
- - run:
16
- name: Which bundler?
17
- command: bundle -v
18
- - run:
19
- name: Bundle Install
20
- command: bundle check || bundle install
21
- - run:
22
- name: Lint using rubocop
23
- command: bundle exec rubocop
24
- - run:
25
- name: Setup Code Climate test-reporter
26
- command: |
27
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
28
- chmod +x ./cc-test-reporter
29
- ./cc-test-reporter before-build
30
- - run:
31
- name: rspec
32
- command: bundle exec rspec
33
- - run:
34
- name: upload test coverage report to Code Climate
35
- command: ./cc-test-reporter after-build --coverage-input-type simplecov --exit-code $?
6
+ jobs:
7
+ - ruby-rails/lint:
8
+ name: lint
9
+ - ruby-rails/test-gem:
10
+ name: test
@@ -1,12 +1,9 @@
1
- ## Why was this change made?
1
+ ## Why was this change made? 🤔
2
2
 
3
3
 
4
4
 
5
- ## How was this change tested?
6
-
7
-
8
-
9
- ## Which documentation and/or configurations were updated?
5
+ ## How was this change tested? 🤨
10
6
 
7
+ ⚡ ⚠ If this change has cross service impact, run ***[integration test create_preassembly_image_spec.rb](https://github.com/sul-dlss/infrastructure-integration-test)*** on stage as it tests preservation, and/or test in stage environment, in addition to specs.⚡
11
8
 
12
9
 
data/.gitignore CHANGED
@@ -8,6 +8,4 @@
8
8
  # rspec failure tracking
9
9
  .rspec_status
10
10
 
11
- Gemfile.lock
12
-
13
11
  .pry_history
data/.rubocop.yml CHANGED
@@ -1,7 +1,26 @@
1
1
  inherit_from: .rubocop_todo.yml
2
2
 
3
+ require:
4
+ - rubocop-rspec
5
+ - rubocop-rake
6
+
3
7
  AllCops:
4
- TargetRubyVersion: 2.6
8
+ TargetRubyVersion: 3.0
9
+ SuggestExtensions: false
10
+ DisplayCopNames: true
11
+ Include:
12
+ - './Rakefile' # rake only
13
+ - '**/*.rb'
14
+ - '**/*.rake' # rake only
15
+ Exclude:
16
+ # autogenerated files (that we don't change) should go here
17
+ - 'bin/**/*'
18
+ - 'config/environments/*.rb' # rails only
19
+ - 'config/routes.rb' # rails only
20
+ - 'db/**/*' # rails only
21
+ - 'spec/spec_helper.rb'
22
+ - 'spec/rails_helper.rb' # rails only
23
+ - 'vendor/**/*' # gems only (?)
5
24
 
6
25
  Layout/EmptyLinesAroundClassBody:
7
26
  Enabled: false
@@ -11,7 +30,7 @@ Metrics/BlockLength:
11
30
  - 'preservation-client.gemspec'
12
31
  - 'spec/**/*'
13
32
 
14
- Metrics/LineLength:
33
+ Layout/LineLength:
15
34
  Max: 120
16
35
  Exclude:
17
36
  - 'lib/preservation/client/response_error_formatter.rb'
@@ -20,9 +39,186 @@ Metrics/LineLength:
20
39
  Metrics/MethodLength:
21
40
  Max: 25
22
41
 
42
+ # do try to keep examples short (can you split out the setup from the test?)
43
+ RSpec/ExampleLength:
44
+ Enabled: false
45
+
46
+ # most tests should test a single thing
47
+ RSpec/MultipleExpectations:
48
+ Max: 5 # default 1
49
+
50
+ RSpec/MultipleMemoizedHelpers:
51
+ Enabled: false
52
+
53
+ RSpec/NestedGroups:
54
+ Max: 5 # default: 3
55
+
23
56
  Style/Documentation:
24
57
  Exclude:
25
58
  - 'spec/**/*'
26
59
 
27
60
  Style/WordArray:
28
61
  Enabled: false
62
+
63
+ Gemspec/RequireMFA: # new in 1.23
64
+ Enabled: true
65
+ Layout/LineEndStringConcatenationIndentation: # new in 1.18
66
+ Enabled: true
67
+ Layout/SpaceBeforeBrackets: # new in 1.7
68
+ Enabled: true
69
+ Lint/AmbiguousAssignment: # new in 1.7
70
+ Enabled: true
71
+ Lint/AmbiguousOperatorPrecedence: # new in 1.21
72
+ Enabled: true
73
+ Lint/AmbiguousRange: # new in 1.19
74
+ Enabled: true
75
+ Lint/DeprecatedConstants: # new in 1.8
76
+ Enabled: true
77
+ Lint/DuplicateBranch: # new in 1.3
78
+ Enabled: true
79
+ Lint/DuplicateRegexpCharacterClassElement: # new in 1.1
80
+ Enabled: true
81
+ Lint/EmptyBlock: # new in 1.1
82
+ Enabled: true
83
+ Lint/EmptyClass: # new in 1.3
84
+ Enabled: true
85
+ Lint/EmptyInPattern: # new in 1.16
86
+ Enabled: true
87
+ Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21
88
+ Enabled: true
89
+ Lint/LambdaWithoutLiteralBlock: # new in 1.8
90
+ Enabled: true
91
+ Lint/NoReturnInBeginEndBlocks: # new in 1.2
92
+ Enabled: true
93
+ Lint/NumberedParameterAssignment: # new in 1.9
94
+ Enabled: true
95
+ Lint/OrAssignmentToConstant: # new in 1.9
96
+ Enabled: true
97
+ Lint/RedundantDirGlobSort: # new in 1.8
98
+ Enabled: true
99
+ Lint/RequireRelativeSelfPath: # new in 1.22
100
+ Enabled: true
101
+ Lint/SymbolConversion: # new in 1.9
102
+ Enabled: true
103
+ Lint/ToEnumArguments: # new in 1.1
104
+ Enabled: true
105
+ Lint/TripleQuotes: # new in 1.9
106
+ Enabled: true
107
+ Lint/UnexpectedBlockArity: # new in 1.5
108
+ Enabled: true
109
+ Lint/UnmodifiedReduceAccumulator: # new in 1.1
110
+ Enabled: true
111
+ Lint/UselessRuby2Keywords: # new in 1.23
112
+ Enabled: true
113
+ Naming/BlockForwarding: # new in 1.24
114
+ Enabled: true
115
+ Security/IoMethods: # new in 1.22
116
+ Enabled: true
117
+ Style/ArgumentsForwarding: # new in 1.1
118
+ Enabled: true
119
+ Style/CollectionCompact: # new in 1.2
120
+ Enabled: true
121
+ Style/DocumentDynamicEvalDefinition: # new in 1.1
122
+ Enabled: true
123
+ Style/EndlessMethod: # new in 1.8
124
+ Enabled: true
125
+ Style/FileRead: # new in 1.24
126
+ Enabled: true
127
+ Style/FileWrite: # new in 1.24
128
+ Enabled: true
129
+ Style/HashConversion: # new in 1.10
130
+ Enabled: true
131
+ Style/HashExcept: # new in 1.7
132
+ Enabled: true
133
+ Style/IfWithBooleanLiteralBranches: # new in 1.9
134
+ Enabled: true
135
+ Style/InPatternThen: # new in 1.16
136
+ Enabled: true
137
+ Style/MapToHash: # new in 1.24
138
+ Enabled: true
139
+ Style/MultilineInPatternThen: # new in 1.16
140
+ Enabled: true
141
+ Style/NegatedIfElseCondition: # new in 1.2
142
+ Enabled: true
143
+ Style/NilLambda: # new in 1.3
144
+ Enabled: true
145
+ Style/NumberedParameters: # new in 1.22
146
+ Enabled: true
147
+ Style/NumberedParametersLimit: # new in 1.22
148
+ Enabled: true
149
+ Style/OpenStructUse: # new in 1.23
150
+ Enabled: true
151
+ Style/QuotedSymbols: # new in 1.16
152
+ Enabled: true
153
+ Style/RedundantArgument: # new in 1.4
154
+ Enabled: true
155
+ Style/RedundantSelfAssignmentBranch: # new in 1.19
156
+ Enabled: true
157
+ Style/SelectByRegexp: # new in 1.22
158
+ Enabled: true
159
+ Style/StringChars: # new in 1.12
160
+ Enabled: true
161
+ Style/SwapValues: # new in 1.1
162
+ Enabled: true
163
+
164
+ RSpec/ExcessiveDocstringSpacing: # new in 2.5
165
+ Enabled: true
166
+ RSpec/IdenticalEqualityAssertion: # new in 2.4
167
+ Enabled: true
168
+ RSpec/SubjectDeclaration: # new in 2.5
169
+ Enabled: true
170
+ RSpec/FactoryBot/SyntaxMethods: # new in 2.7
171
+ Enabled: true
172
+ RSpec/Rails/AvoidSetupHook: # new in 2.4
173
+ Enabled: true
174
+ Gemspec/DeprecatedAttributeAssignment: # new in 1.30
175
+ Enabled: true
176
+ Layout/LineContinuationLeadingSpace: # new in 1.31
177
+ Enabled: true
178
+ Layout/LineContinuationSpacing: # new in 1.31
179
+ Enabled: true
180
+ Lint/ConstantOverwrittenInRescue: # new in 1.31
181
+ Enabled: true
182
+ Lint/NonAtomicFileOperation: # new in 1.31
183
+ Enabled: true
184
+ Lint/RefinementImportMethods: # new in 1.27
185
+ Enabled: true
186
+ Security/CompoundHash: # new in 1.28
187
+ Enabled: true
188
+ Style/EnvHome: # new in 1.29
189
+ Enabled: true
190
+ Style/FetchEnvVar: # new in 1.28
191
+ Enabled: true
192
+ Style/MapCompactWithConditionalBlock: # new in 1.30
193
+ Enabled: true
194
+ Style/NestedFileDirname: # new in 1.26
195
+ Enabled: true
196
+ Style/ObjectThen: # new in 1.28
197
+ Enabled: true
198
+ Style/RedundantInitialize: # new in 1.27
199
+ Enabled: true
200
+ RSpec/BeEq: # new in 2.9.0
201
+ Enabled: true
202
+ RSpec/BeNil: # new in 2.9.0
203
+ Enabled: true
204
+ RSpec/ChangeByZero: # new in 2.11.0
205
+ Enabled: true
206
+ RSpec/VerifiedDoubleReference: # new in 2.10.0
207
+ Enabled: true
208
+
209
+ Lint/RequireRangeParentheses: # new in 1.32
210
+ Enabled: true
211
+ Style/EmptyHeredoc: # new in 1.32
212
+ Enabled: true
213
+ Style/MagicCommentFormat: # new in 1.35
214
+ Enabled: true
215
+ RSpec/ClassCheck: # new in 2.13
216
+ Enabled: true
217
+ RSpec/NoExpectationExample: # new in 2.13
218
+ Enabled: true
219
+ RSpec/Capybara/SpecificFinders: # new in 2.13
220
+ Enabled: true
221
+ RSpec/Capybara/SpecificMatcher: # new in 2.12
222
+ Enabled: true
223
+ RSpec/Rails/HaveHttpStatus: # new in 2.12
224
+ Enabled: true
data/.rubocop_todo.yml CHANGED
@@ -1,15 +1,19 @@
1
1
  # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2020-01-27 18:06:55 -0800 using RuboCop version 0.77.0.
2
+ # `rubocop --auto-gen-config --auto-gen-only-exclude`
3
+ # on 2022-10-04 18:22:01 UTC using RuboCop version 1.36.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
9
  # Offense count: 2
10
+ # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods, CountRepeatedAttributes, Max.
10
11
  Metrics/AbcSize:
11
- Max: 34
12
+ Exclude:
13
+ - 'lib/preservation/client/versioned_api_service.rb'
12
14
 
13
15
  # Offense count: 1
16
+ # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods, Max.
14
17
  Metrics/CyclomaticComplexity:
15
- Max: 7
18
+ Exclude:
19
+ - 'lib/preservation/client/versioned_api_service.rb'
data/Gemfile.lock ADDED
@@ -0,0 +1,130 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ preservation-client (5.0.0)
5
+ activesupport (>= 4.2, < 8)
6
+ faraday (~> 2.0)
7
+ moab-versioning (~> 5.0)
8
+ zeitwerk (~> 2.1)
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ activesupport (7.0.4)
14
+ concurrent-ruby (~> 1.0, >= 1.0.2)
15
+ i18n (>= 1.6, < 2)
16
+ minitest (>= 5.1)
17
+ tzinfo (~> 2.0)
18
+ addressable (2.8.1)
19
+ public_suffix (>= 2.0.2, < 6.0)
20
+ ast (2.4.2)
21
+ byebug (11.1.3)
22
+ coderay (1.1.3)
23
+ concurrent-ruby (1.1.10)
24
+ crack (0.4.5)
25
+ rexml
26
+ diff-lcs (1.5.0)
27
+ docile (1.4.0)
28
+ druid-tools (3.0.0)
29
+ faraday (2.5.2)
30
+ faraday-net_http (>= 2.0, < 3.1)
31
+ ruby2_keywords (>= 0.0.4)
32
+ faraday-net_http (3.0.0)
33
+ hashdiff (1.0.1)
34
+ i18n (1.12.0)
35
+ concurrent-ruby (~> 1.0)
36
+ json (2.6.2)
37
+ method_source (1.0.0)
38
+ mini_portile2 (2.8.0)
39
+ minitest (5.16.3)
40
+ moab-versioning (5.2.0)
41
+ druid-tools (>= 1.0.0)
42
+ json
43
+ nokogiri
44
+ nokogiri-happymapper
45
+ nokogiri (1.13.8)
46
+ mini_portile2 (~> 2.8.0)
47
+ racc (~> 1.4)
48
+ nokogiri (1.13.8-x86_64-darwin)
49
+ racc (~> 1.4)
50
+ nokogiri-happymapper (0.9.0)
51
+ nokogiri (~> 1.5)
52
+ parallel (1.22.1)
53
+ parser (3.1.2.1)
54
+ ast (~> 2.4.1)
55
+ pry (0.14.1)
56
+ coderay (~> 1.1)
57
+ method_source (~> 1.0)
58
+ pry-byebug (3.10.1)
59
+ byebug (~> 11.0)
60
+ pry (>= 0.13, < 0.15)
61
+ public_suffix (5.0.0)
62
+ racc (1.6.0)
63
+ rainbow (3.1.1)
64
+ rake (13.0.6)
65
+ regexp_parser (2.6.0)
66
+ rexml (3.2.5)
67
+ rspec (3.11.0)
68
+ rspec-core (~> 3.11.0)
69
+ rspec-expectations (~> 3.11.0)
70
+ rspec-mocks (~> 3.11.0)
71
+ rspec-core (3.11.0)
72
+ rspec-support (~> 3.11.0)
73
+ rspec-expectations (3.11.1)
74
+ diff-lcs (>= 1.2.0, < 2.0)
75
+ rspec-support (~> 3.11.0)
76
+ rspec-mocks (3.11.1)
77
+ diff-lcs (>= 1.2.0, < 2.0)
78
+ rspec-support (~> 3.11.0)
79
+ rspec-support (3.11.1)
80
+ rubocop (1.36.0)
81
+ json (~> 2.3)
82
+ parallel (~> 1.10)
83
+ parser (>= 3.1.2.1)
84
+ rainbow (>= 2.2.2, < 4.0)
85
+ regexp_parser (>= 1.8, < 3.0)
86
+ rexml (>= 3.2.5, < 4.0)
87
+ rubocop-ast (>= 1.20.1, < 2.0)
88
+ ruby-progressbar (~> 1.7)
89
+ unicode-display_width (>= 1.4.0, < 3.0)
90
+ rubocop-ast (1.21.0)
91
+ parser (>= 3.1.1.0)
92
+ rubocop-rake (0.6.0)
93
+ rubocop (~> 1.0)
94
+ rubocop-rspec (2.13.2)
95
+ rubocop (~> 1.33)
96
+ ruby-progressbar (1.11.0)
97
+ ruby2_keywords (0.0.5)
98
+ simplecov (0.21.2)
99
+ docile (~> 1.1)
100
+ simplecov-html (~> 0.11)
101
+ simplecov_json_formatter (~> 0.1)
102
+ simplecov-html (0.12.3)
103
+ simplecov_json_formatter (0.1.4)
104
+ tzinfo (2.0.5)
105
+ concurrent-ruby (~> 1.0)
106
+ unicode-display_width (2.3.0)
107
+ webmock (3.18.1)
108
+ addressable (>= 2.8.0)
109
+ crack (>= 0.3.2)
110
+ hashdiff (>= 0.4.0, < 2.0.0)
111
+ zeitwerk (2.6.1)
112
+
113
+ PLATFORMS
114
+ x86_64-darwin-19
115
+ x86_64-linux
116
+
117
+ DEPENDENCIES
118
+ bundler (~> 2.0)
119
+ preservation-client!
120
+ pry-byebug
121
+ rake (>= 12.3.3)
122
+ rspec (~> 3.0)
123
+ rubocop (~> 1.24)
124
+ rubocop-rake
125
+ rubocop-rspec (~> 2.1)
126
+ simplecov
127
+ webmock
128
+
129
+ BUNDLED WITH
130
+ 2.3.17
data/README.md CHANGED
@@ -88,10 +88,6 @@ Note that the preservation service is behind a firewall.
88
88
  - `client.objects.metadata(druid: 'oo000oo0000', filepath: 'identityMetadata.xml', version: '8')` - returns contents of identityMetadata.xml in version 8 of Moab object
89
89
  - `client.objects.signature_catalog('oo000oo0000')` - returns latest Moab::SignatureCatalog from Moab
90
90
 
91
- ### Retrieve the primary moab storage location
92
-
93
- - `client.objects.primary_moab_location(druid: 'ooo000oo0000')` - returns the path to the storage location for the primary moab
94
-
95
91
  ### Validate the Moab
96
92
 
97
93
  - `client.objects.validate_moab(druid: 'ooo000oo0000')` - validates that the Moab object, used by preservationWF to ensure we have a valid Moab before replicating to various preservation endpoints
@@ -99,6 +95,7 @@ Note that the preservation service is behind a firewall.
99
95
  ### Get difference information between passed contentMetadata.xml and files in the Moab
100
96
 
101
97
  - `client.objects.content_inventory_diff(druid: 'oo000oo0000', content_metadata: '<contentMetadata>...</contentMetadata>')` - returns Moab::FileInventoryDifference containing differences between passed content metadata and latest version for subset 'all'
98
+
102
99
  - you may specify the subset (all|shelve|preserve|publish) and/or the version:
103
100
  - `client.objects.content_inventory_diff(druid: 'oo000oo0000', subset: 'publish', version: '1', content_metadata: '<contentMetadata>...</contentMetadata>')`
104
101
 
@@ -107,6 +104,7 @@ Note that the preservation service is behind a firewall.
107
104
  ### Alert the catalog that an object has been changed and needs to be updated
108
105
 
109
106
  - `client.update(druid: 'oo000oo0000', version: 3, size: 2342, storage_location: 'some/storage/location')` - returns true if it worked
107
+
110
108
  ## Development
111
109
 
112
110
  After checking out the repo, run `bundle` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -4,7 +4,7 @@ module Preservation
4
4
  class Client
5
5
  # This wraps any faraday connection errors with preservation-client errors
6
6
  # see https://www.rubydoc.info/gems/faraday/Faraday/ClientError for info on errors
7
- class ErrorFaradayMiddleware < Faraday::Response::Middleware
7
+ class ErrorFaradayMiddleware < Faraday::Middleware
8
8
  def call(env)
9
9
  @app.call(env)
10
10
  rescue Faraday::ConnectionFailed, Faraday::SSLError, Faraday::TimeoutError => e
@@ -80,15 +80,6 @@ module Preservation
80
80
  get("objects/#{druid}/validate_moab", {}, on_data: nil)
81
81
  end
82
82
 
83
- # retrieve the storage location for the primary moab of the given druid
84
- # @param [String] druid - with or without prefix: 'druid:ab123cd4567' or 'ab123cd4567'
85
- # @return [String] the storage location of the primary moab for the given druid
86
- # @raise [Preservation::Client::NotFoundError] when druid is not found
87
- # @raise [Preservation::Client::LockedError] when druid is in locked state (not available for versioning)
88
- def primary_moab_location(druid:)
89
- get("objects/#{druid}/primary_moab_location", {}, on_data: nil)
90
- end
91
-
92
83
  # convenience method for retrieving latest Moab::SignatureCatalog from a Moab object,
93
84
  # @param [String] druid - with or without prefix: 'druid:ab123cd4567' OR 'ab123cd4567'
94
85
  # @return [Moab::SignatureCatalog] the manifest of all files previously ingested
@@ -4,9 +4,9 @@ module Preservation
4
4
  class Client
5
5
  # Format HTTP response-related errors
6
6
  class ResponseErrorFormatter
7
- DEFAULT_BODY = 'Response from preservation-catalog did not contain a body. '\
8
- 'Check honeybadger for preservation-catalog for backtraces, '\
9
- 'and look into adding a `rescue_from` in preservation-catalog '\
7
+ DEFAULT_BODY = 'Response from preservation-catalog did not contain a body. ' \
8
+ 'Check honeybadger for preservation-catalog for backtraces, ' \
9
+ 'and look into adding a `rescue_from` in preservation-catalog ' \
10
10
  'to provide more details to the client in the future.'
11
11
 
12
12
  def self.format(response:, object_id: nil, client_method_name: nil)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Preservation
4
4
  class Client
5
- VERSION = '3.5.0'
5
+ VERSION = '5.0.0'
6
6
  end
7
7
  end
@@ -31,7 +31,7 @@ module Preservation
31
31
  raise NotFoundError, errmsg
32
32
  rescue Faraday::Error => e
33
33
  errmsg = "Preservation::Client.#{caller_locations.first.label} for #{object_id} " \
34
- "got #{e.response[:status]} from Preservation at #{req_url}: #{e.response[:body]}"
34
+ "got #{e.response[:status]} from Preservation at #{req_url}: #{e.response[:body]}"
35
35
  raise UnexpectedResponseError, errmsg
36
36
  end
37
37
 
@@ -90,11 +90,11 @@ module Preservation
90
90
  raise UnexpectedResponseError, errmsg
91
91
  rescue Faraday::ResourceNotFound => e
92
92
  errmsg = "Preservation::Client.#{caller_locations.first.label} " \
93
- "got #{e.response[:status]} from Preservation at #{req_url}: #{e.response[:body]}"
93
+ "got #{e.response[:status]} from Preservation at #{req_url}: #{e.response[:body]}"
94
94
  raise NotFoundError, errmsg
95
95
  rescue Faraday::Error => e
96
96
  errmsg = "Preservation::Client.#{caller_locations.first.label} " \
97
- "got #{e.response[:status]} from Preservation at #{req_url}: #{e.response[:body]}"
97
+ "got #{e.response[:status]} from Preservation at #{req_url}: #{e.response[:body]}"
98
98
  exception_class = e.response[:status] == 423 ? LockedError : UnexpectedResponseError
99
99
  raise exception_class, errmsg
100
100
  end
@@ -63,6 +63,7 @@ module Preservation
63
63
  end
64
64
 
65
65
  attr_writer :url, :connection, :token
66
+
66
67
  delegate :update, to: :catalog
67
68
 
68
69
  private
@@ -27,17 +27,21 @@ Gem::Specification.new do |spec|
27
27
  spec.bindir = 'exe'
28
28
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
29
  spec.require_paths = ['lib']
30
+ spec.required_ruby_version = '>= 3.0'
30
31
 
31
32
  spec.add_dependency 'activesupport', '>= 4.2', '< 8'
32
- spec.add_dependency 'faraday', '>= 0.15', '< 2.0'
33
- spec.add_dependency 'moab-versioning', '~> 4.3'
33
+ spec.add_dependency 'faraday', '~> 2.0'
34
+ spec.add_dependency 'moab-versioning', '~> 5.0'
34
35
  spec.add_dependency 'zeitwerk', '~> 2.1'
35
36
 
36
37
  spec.add_development_dependency 'bundler', '~> 2.0'
37
38
  spec.add_development_dependency 'pry-byebug'
38
39
  spec.add_development_dependency 'rake', '>= 12.3.3'
39
40
  spec.add_development_dependency 'rspec', '~> 3.0'
40
- spec.add_development_dependency 'rubocop', '~> 0.77.0'
41
- spec.add_development_dependency 'simplecov', '~> 0.17.0' # For CodeClimate
41
+ spec.add_development_dependency 'rubocop', '~> 1.24'
42
+ spec.add_development_dependency 'rubocop-rake'
43
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.1'
44
+ spec.add_development_dependency 'simplecov'
42
45
  spec.add_development_dependency 'webmock'
46
+ spec.metadata['rubygems_mfa_required'] = 'true'
43
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: preservation-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.0
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Naomi Dushay
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-05 00:00:00.000000000 Z
11
+ date: 2022-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -34,20 +34,14 @@ dependencies:
34
34
  name: faraday
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: '0.15'
40
- - - "<"
37
+ - - "~>"
41
38
  - !ruby/object:Gem::Version
42
39
  version: '2.0'
43
40
  type: :runtime
44
41
  prerelease: false
45
42
  version_requirements: !ruby/object:Gem::Requirement
46
43
  requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: '0.15'
50
- - - "<"
44
+ - - "~>"
51
45
  - !ruby/object:Gem::Version
52
46
  version: '2.0'
53
47
  - !ruby/object:Gem::Dependency
@@ -56,14 +50,14 @@ dependencies:
56
50
  requirements:
57
51
  - - "~>"
58
52
  - !ruby/object:Gem::Version
59
- version: '4.3'
53
+ version: '5.0'
60
54
  type: :runtime
61
55
  prerelease: false
62
56
  version_requirements: !ruby/object:Gem::Requirement
63
57
  requirements:
64
58
  - - "~>"
65
59
  - !ruby/object:Gem::Version
66
- version: '4.3'
60
+ version: '5.0'
67
61
  - !ruby/object:Gem::Dependency
68
62
  name: zeitwerk
69
63
  requirement: !ruby/object:Gem::Requirement
@@ -140,28 +134,56 @@ dependencies:
140
134
  requirements:
141
135
  - - "~>"
142
136
  - !ruby/object:Gem::Version
143
- version: 0.77.0
137
+ version: '1.24'
144
138
  type: :development
145
139
  prerelease: false
146
140
  version_requirements: !ruby/object:Gem::Requirement
147
141
  requirements:
148
142
  - - "~>"
149
143
  - !ruby/object:Gem::Version
150
- version: 0.77.0
144
+ version: '1.24'
151
145
  - !ruby/object:Gem::Dependency
152
- name: simplecov
146
+ name: rubocop-rake
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: rubocop-rspec
153
161
  requirement: !ruby/object:Gem::Requirement
154
162
  requirements:
155
163
  - - "~>"
156
164
  - !ruby/object:Gem::Version
157
- version: 0.17.0
165
+ version: '2.1'
158
166
  type: :development
159
167
  prerelease: false
160
168
  version_requirements: !ruby/object:Gem::Requirement
161
169
  requirements:
162
170
  - - "~>"
163
171
  - !ruby/object:Gem::Version
164
- version: 0.17.0
172
+ version: '2.1'
173
+ - !ruby/object:Gem::Dependency
174
+ name: simplecov
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
165
187
  - !ruby/object:Gem::Dependency
166
188
  name: webmock
167
189
  requirement: !ruby/object:Gem::Requirement
@@ -191,6 +213,7 @@ files:
191
213
  - ".rubocop.yml"
192
214
  - ".rubocop_todo.yml"
193
215
  - Gemfile
216
+ - Gemfile.lock
194
217
  - LICENSE
195
218
  - README.md
196
219
  - Rakefile
@@ -210,7 +233,8 @@ metadata:
210
233
  allowed_push_host: https://rubygems.org/
211
234
  homepage_uri: https://github.com/sul-dlss/preservation-client
212
235
  source_code_uri: https://github.com/sul-dlss/preservation-client.
213
- post_install_message:
236
+ rubygems_mfa_required: 'true'
237
+ post_install_message:
214
238
  rdoc_options: []
215
239
  require_paths:
216
240
  - lib
@@ -218,15 +242,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
218
242
  requirements:
219
243
  - - ">="
220
244
  - !ruby/object:Gem::Version
221
- version: '0'
245
+ version: '3.0'
222
246
  required_rubygems_version: !ruby/object:Gem::Requirement
223
247
  requirements:
224
248
  - - ">="
225
249
  - !ruby/object:Gem::Version
226
250
  version: '0'
227
251
  requirements: []
228
- rubygems_version: 3.1.4
229
- signing_key:
252
+ rubygems_version: 3.3.22
253
+ signing_key:
230
254
  specification_version: 4
231
255
  summary: A thin client for getting info from SDR preservation.
232
256
  test_files: []