sdr-client 0.27.0 → 0.28.4

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: 0b57004bc33af516fb892a3d1cd317c1549319e97e4ca4ccc7c9ea82a00f81c0
4
- data.tar.gz: 808661eb382c5a6f3098a96a473fa8396f29d413e290d822d32739f9fe34db49
3
+ metadata.gz: 6db2cf36687c4acd4edf26d6046299958450211f89a4e29984d4955c84c891a9
4
+ data.tar.gz: f614d2ae6ecf2a6ac35775d9b20f6ac800c805c1aa8e8700052ffef3531b214d
5
5
  SHA512:
6
- metadata.gz: 343d5374e9e2b12731ff06111d71646fcca815c030e67e4fd29b65477440b9bc1fde6a04b2d597ccb17c37ec56ff5a6cdc4010ad05bfaba30c7eed569ecf94b3
7
- data.tar.gz: 356c88775241392487f41a31733169625f43f745e6e0c9e432a464e581b6c366a13148cd22495877972db75808e402efbf5929761adac1ad4445b35c12bc3fa9
6
+ metadata.gz: 36b84aec31d944071d118a997cc16a48149c562812da2173af9927db31ae92c4e8d44d0ad9d55e43ef434f9f5d9be6898fecebffc967d44ff0350caa0c2ba4b5
7
+ data.tar.gz: 744e993e54fa8dc5cffff643cd619879d4b4c65d63431f7892ca77bd79da63d353cb3d299a029f516bec2c3e16dcb534de112a664c2435f2d01f0130318bdd9d
@@ -1,4 +1,3 @@
1
-
2
1
  inherit_from: .rubocop_todo.yml
3
2
 
4
3
  AllCops:
@@ -7,11 +6,6 @@ AllCops:
7
6
  - 'bin/console'
8
7
  - 'vendor/**/*'
9
8
 
10
- Layout/LineLength:
11
- Max: 120
12
- Exclude:
13
- - 'spec/sdr_client/deposit/process_spec.rb'
14
-
15
9
  Metrics/BlockLength:
16
10
  Exclude:
17
11
  - 'spec/**/*'
@@ -21,4 +15,4 @@ Metrics/BlockLength:
21
15
 
22
16
  Naming/FileName:
23
17
  Exclude:
24
- - 'lib/sdr-client.rb'
18
+ - 'lib/sdr-client.rb'
@@ -1,17 +1,29 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2020-04-27 08:24:29 -0400 using RuboCop version 0.82.0.
3
+ # on 2020-06-24 17:02:25 -0700 using RuboCop version 0.79.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: IgnoredMethods.
11
10
  Metrics/AbcSize:
12
11
  Max: 16
13
12
 
14
- # Offense count: 7
13
+ # Offense count: 8
15
14
  # Configuration parameters: CountComments, ExcludedMethods.
16
15
  Metrics/MethodLength:
17
16
  Max: 15
17
+
18
+ # Offense count: 1
19
+ # Cop supports --auto-correct.
20
+ Style/IfUnlessModifier:
21
+ Exclude:
22
+ - 'exe/sdr'
23
+
24
+ # Offense count: 187
25
+ # Cop supports --auto-correct.
26
+ # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
27
+ # URISchemes: http, https
28
+ Layout/LineLength:
29
+ Max: 1228
data/exe/sdr CHANGED
@@ -31,8 +31,8 @@ deposit_options = OptionParser.new do |opts|
31
31
 
32
32
  opts.on('--type TYPE', 'The object type to create. ' \
33
33
  'One of: "image", "book", "document", "map", "manuscript", "media", ' \
34
- '"three_dimensional", "collection", or "admin_policy"') do |type|
35
- if %w[image book document map manuscript media three_dimensional collection admin_policy].include?(type)
34
+ '"three_dimensional", "object", "collection", or "admin_policy"') do |type|
35
+ if %w[image book document map manuscript media three_dimensional object collection admin_policy].include?(type)
36
36
  options[:type] = "http://cocina.sul.stanford.edu/models/#{type}.jsonld"
37
37
  end
38
38
  end
@@ -5,6 +5,7 @@ require 'faraday'
5
5
  require 'active_support'
6
6
  require 'active_support/core_ext/object/json'
7
7
  require 'active_support/core_ext/hash/indifferent_access'
8
+ require 'active_support/core_ext/file/atomic'
8
9
  require 'cocina/models'
9
10
 
10
11
  require 'sdr_client/version'
@@ -9,15 +9,19 @@ module SdrClient
9
9
  def self.write(body)
10
10
  json = JSON.parse(body)
11
11
  Dir.mkdir(credentials_path, 0o700) unless Dir.exist?(credentials_path)
12
- File.open(credentials_file, 'w', 0o600) do |file|
12
+ File.atomic_write(credentials_file) do |file|
13
13
  file.write(json.fetch('token'))
14
14
  end
15
+ File.chmod(0o600, credentials_file)
15
16
  end
16
17
 
17
18
  def self.read
18
19
  raise NoCredentialsError unless ::File.exist?(credentials_file)
19
20
 
20
- IO.readlines(credentials_file, chomp: true).first
21
+ creds = IO.readlines(credentials_file, chomp: true).first if ::File.exist?(credentials_file)
22
+ raise NoCredentialsError if creds.nil?
23
+
24
+ creds
21
25
  end
22
26
 
23
27
  def self.credentials_path
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'digest'
3
+ require 'shellwords'
4
4
 
5
5
  module SdrClient
6
6
  module Deposit
@@ -9,7 +9,8 @@ module SdrClient
9
9
  class MimeType
10
10
  NAME = 'mime_type'
11
11
  def self.for(file_path:, **)
12
- `file --mime-type -b #{file_path}`.chomp
12
+ argv = Shellwords.escape(file_path)
13
+ `file --mime-type -b #{argv}`.chomp
13
14
  end
14
15
  end
15
16
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SdrClient
4
- VERSION = '0.27.0'
4
+ VERSION = '0.28.4'
5
5
  end
@@ -37,6 +37,6 @@ Gem::Specification.new do |spec|
37
37
  spec.add_development_dependency 'rspec', '~> 3.0'
38
38
  spec.add_development_dependency 'rubocop', '~> 0.79.0'
39
39
  spec.add_development_dependency 'rubocop-rspec', '~> 1.37.1'
40
- spec.add_development_dependency 'simplecov'
40
+ spec.add_development_dependency 'simplecov', '~> 0.17.0' # CodeClimate cannot use SimpleCov >= 0.18.0 for generating test coverage
41
41
  spec.add_development_dependency 'webmock', '~> 3.7'
42
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sdr-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.27.0
4
+ version: 0.28.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-11 00:00:00.000000000 Z
11
+ date: 2020-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -140,16 +140,16 @@ dependencies:
140
140
  name: simplecov
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ">="
143
+ - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '0'
145
+ version: 0.17.0
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ">="
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '0'
152
+ version: 0.17.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: webmock
155
155
  requirement: !ruby/object:Gem::Requirement