druid-tools 2.2.1 → 3.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 +4 -4
- data/.circleci/config.yml +1 -1
- data/.gitignore +0 -1
- data/.rubocop.yml +30 -2
- data/Gemfile.lock +73 -0
- data/README.md +0 -15
- data/VERSION +1 -1
- data/druid-tools.gemspec +2 -3
- data/lib/druid_tools/druid.rb +0 -49
- data/spec/druid_tools_spec.rb +1 -130
- data/spec/spec_helper.rb +1 -6
- metadata +27 -29
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4e1cf67f6458c6ada6365aaa5efa859c9b145c95052c56a1dced7daa84b0a72a
|
|
4
|
+
data.tar.gz: f01aee261d0a590df682c1b2372a8d2c6bcd3c86ae1049ac28aef679130645f8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 637824152edc8b881ff720d1813099856c34d97a55186706caf60e2074a0a6ab63fb97f883631d194ab628f7222d82977a9f06e2649eba0384267d70dc854221
|
|
7
|
+
data.tar.gz: f161e8cee7ef2efd112c351d87022a48f2e25b22dafd2d853d535e8bdb78712f3dbbf24730636a25aa3374d98a2a214143a62f8e69a02db482750958b6781792
|
data/.circleci/config.yml
CHANGED
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
|
@@ -20,8 +20,6 @@ Naming/FileName:
|
|
|
20
20
|
- druid-tools.gemspec
|
|
21
21
|
- lib/druid-tools.rb
|
|
22
22
|
|
|
23
|
-
Gemspec/DateAssignment: # new in 1.10
|
|
24
|
-
Enabled: true
|
|
25
23
|
Gemspec/RequireMFA: # new in 1.23
|
|
26
24
|
Enabled: true
|
|
27
25
|
Layout/LineEndStringConcatenationIndentation: # new in 1.18
|
|
@@ -136,3 +134,33 @@ RSpec/FactoryBot/SyntaxMethods: # new in 2.7
|
|
|
136
134
|
Enabled: true
|
|
137
135
|
RSpec/Rails/AvoidSetupHook: # new in 2.4
|
|
138
136
|
Enabled: true
|
|
137
|
+
Gemspec/DeprecatedAttributeAssignment: # new in 1.30
|
|
138
|
+
Enabled: true
|
|
139
|
+
Layout/LineContinuationLeadingSpace: # new in 1.31
|
|
140
|
+
Enabled: true
|
|
141
|
+
Layout/LineContinuationSpacing: # new in 1.31
|
|
142
|
+
Enabled: true
|
|
143
|
+
Lint/ConstantOverwrittenInRescue: # new in 1.31
|
|
144
|
+
Enabled: true
|
|
145
|
+
Lint/NonAtomicFileOperation: # new in 1.31
|
|
146
|
+
Enabled: true
|
|
147
|
+
Lint/RefinementImportMethods: # new in 1.27
|
|
148
|
+
Enabled: true
|
|
149
|
+
Security/CompoundHash: # new in 1.28
|
|
150
|
+
Enabled: true
|
|
151
|
+
Style/EnvHome: # new in 1.29
|
|
152
|
+
Enabled: true
|
|
153
|
+
Style/FetchEnvVar: # new in 1.28
|
|
154
|
+
Enabled: true
|
|
155
|
+
Style/MapCompactWithConditionalBlock: # new in 1.30
|
|
156
|
+
Enabled: true
|
|
157
|
+
Style/NestedFileDirname: # new in 1.26
|
|
158
|
+
Enabled: true
|
|
159
|
+
Style/ObjectThen: # new in 1.28
|
|
160
|
+
Enabled: true
|
|
161
|
+
Style/RedundantInitialize: # new in 1.27
|
|
162
|
+
Enabled: true
|
|
163
|
+
RSpec/ChangeByZero: # new in 2.11.0
|
|
164
|
+
Enabled: true
|
|
165
|
+
RSpec/VerifiedDoubleReference: # new in 2.10.0
|
|
166
|
+
Enabled: true
|
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
druid-tools (3.0.0)
|
|
5
|
+
|
|
6
|
+
GEM
|
|
7
|
+
remote: https://rubygems.org/
|
|
8
|
+
specs:
|
|
9
|
+
ast (2.4.2)
|
|
10
|
+
byebug (11.1.3)
|
|
11
|
+
diff-lcs (1.5.0)
|
|
12
|
+
docile (1.4.0)
|
|
13
|
+
json (2.6.2)
|
|
14
|
+
parallel (1.22.1)
|
|
15
|
+
parser (3.1.2.0)
|
|
16
|
+
ast (~> 2.4.1)
|
|
17
|
+
rainbow (3.1.1)
|
|
18
|
+
rake (13.0.6)
|
|
19
|
+
regexp_parser (2.5.0)
|
|
20
|
+
rexml (3.2.5)
|
|
21
|
+
rspec (3.11.0)
|
|
22
|
+
rspec-core (~> 3.11.0)
|
|
23
|
+
rspec-expectations (~> 3.11.0)
|
|
24
|
+
rspec-mocks (~> 3.11.0)
|
|
25
|
+
rspec-core (3.11.0)
|
|
26
|
+
rspec-support (~> 3.11.0)
|
|
27
|
+
rspec-expectations (3.11.0)
|
|
28
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
29
|
+
rspec-support (~> 3.11.0)
|
|
30
|
+
rspec-mocks (3.11.1)
|
|
31
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
32
|
+
rspec-support (~> 3.11.0)
|
|
33
|
+
rspec-support (3.11.0)
|
|
34
|
+
rubocop (1.32.0)
|
|
35
|
+
json (~> 2.3)
|
|
36
|
+
parallel (~> 1.10)
|
|
37
|
+
parser (>= 3.1.0.0)
|
|
38
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
39
|
+
regexp_parser (>= 1.8, < 3.0)
|
|
40
|
+
rexml (>= 3.2.5, < 4.0)
|
|
41
|
+
rubocop-ast (>= 1.19.1, < 2.0)
|
|
42
|
+
ruby-progressbar (~> 1.7)
|
|
43
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
|
44
|
+
rubocop-ast (1.19.1)
|
|
45
|
+
parser (>= 3.1.1.0)
|
|
46
|
+
rubocop-rake (0.6.0)
|
|
47
|
+
rubocop (~> 1.0)
|
|
48
|
+
rubocop-rspec (2.12.1)
|
|
49
|
+
rubocop (~> 1.31)
|
|
50
|
+
ruby-progressbar (1.11.0)
|
|
51
|
+
simplecov (0.16.1)
|
|
52
|
+
docile (~> 1.1)
|
|
53
|
+
json (>= 1.8, < 3)
|
|
54
|
+
simplecov-html (~> 0.10.0)
|
|
55
|
+
simplecov-html (0.10.2)
|
|
56
|
+
unicode-display_width (2.2.0)
|
|
57
|
+
|
|
58
|
+
PLATFORMS
|
|
59
|
+
x86_64-darwin-21
|
|
60
|
+
x86_64-linux
|
|
61
|
+
|
|
62
|
+
DEPENDENCIES
|
|
63
|
+
byebug
|
|
64
|
+
druid-tools!
|
|
65
|
+
rake (>= 10.1.0)
|
|
66
|
+
rspec (~> 3.0)
|
|
67
|
+
rubocop
|
|
68
|
+
rubocop-rake
|
|
69
|
+
rubocop-rspec
|
|
70
|
+
simplecov
|
|
71
|
+
|
|
72
|
+
BUNDLED WITH
|
|
73
|
+
2.3.17
|
data/README.md
CHANGED
|
@@ -71,8 +71,6 @@ d.mkdir
|
|
|
71
71
|
d.mkdir('temp')
|
|
72
72
|
# Remove a druid tree, but only up to the last shared branch directory
|
|
73
73
|
d.rmdir
|
|
74
|
-
# Link content from another source into a druid tree
|
|
75
|
-
d.mkdir_with_final_link('/some/other/content/location')
|
|
76
74
|
```
|
|
77
75
|
|
|
78
76
|
### Content-specific methods create the relevant directories if they don't exist
|
|
@@ -110,19 +108,6 @@ d.find_content('this/file/does/not/exist.jpg')
|
|
|
110
108
|
=> nil
|
|
111
109
|
```
|
|
112
110
|
|
|
113
|
-
### Pruning: removes leaves of tree up to non-empty branches
|
|
114
|
-
|
|
115
|
-
```ruby
|
|
116
|
-
d1 = DruidTools::Druid.new('druid:cd456ef7890', '/workspace')
|
|
117
|
-
d1.mkdir
|
|
118
|
-
d2 = DruidTools::Druid.new('druid:cd456gh1234', '/workspace')
|
|
119
|
-
d2.mkdir
|
|
120
|
-
|
|
121
|
-
# /workspace/cd/456/gh/1234/cd456gh1234 pruned down to /workspace/cd/456
|
|
122
|
-
# /workspace/cd/456/ef/7890/cd456ef7890 left intact
|
|
123
|
-
d2.prune!
|
|
124
|
-
```
|
|
125
|
-
|
|
126
111
|
### Stacks and Purl compatible Druid. All files at the leaf directories
|
|
127
112
|
|
|
128
113
|
```ruby
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
3.0.0
|
data/druid-tools.gemspec
CHANGED
|
@@ -13,15 +13,14 @@ Gem::Specification.new do |gem|
|
|
|
13
13
|
|
|
14
14
|
gem.files = `git ls-files`.split($OUTPUT_RECORD_SEPARATOR)
|
|
15
15
|
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
|
16
|
-
gem.test_files = gem.files.grep(%r{^spec/})
|
|
17
16
|
gem.name = 'druid-tools'
|
|
18
17
|
gem.require_paths = ['lib']
|
|
19
18
|
gem.version = File.read('VERSION').strip
|
|
20
19
|
|
|
21
|
-
gem.add_dependency 'deprecation'
|
|
22
|
-
gem.add_development_dependency 'coveralls'
|
|
23
20
|
gem.add_development_dependency 'rake', '>= 10.1.0'
|
|
24
21
|
gem.add_development_dependency 'rspec', '~> 3.0'
|
|
25
22
|
gem.add_development_dependency 'rubocop'
|
|
23
|
+
gem.add_development_dependency 'rubocop-rake'
|
|
26
24
|
gem.add_development_dependency 'rubocop-rspec'
|
|
25
|
+
gem.add_development_dependency 'simplecov'
|
|
27
26
|
end
|
data/lib/druid_tools/druid.rb
CHANGED
|
@@ -2,13 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
require 'pathname'
|
|
4
4
|
require 'fileutils'
|
|
5
|
-
require 'deprecation'
|
|
6
5
|
|
|
7
6
|
module DruidTools
|
|
8
7
|
class Druid
|
|
9
|
-
extend Deprecation
|
|
10
|
-
self.deprecation_horizon = 'druid-tools 3.0.0'
|
|
11
|
-
|
|
12
8
|
attr_accessor :druid, :base
|
|
13
9
|
|
|
14
10
|
# See https://consul.stanford.edu/pages/viewpage.action?title=SURI+2.0+Specification&spaceKey=chimera
|
|
@@ -128,34 +124,6 @@ module DruidTools
|
|
|
128
124
|
found_dir
|
|
129
125
|
end
|
|
130
126
|
|
|
131
|
-
def mkdir_with_final_link(source, extra = nil)
|
|
132
|
-
new_path = path(extra)
|
|
133
|
-
if File.directory?(new_path) && !File.symlink?(new_path)
|
|
134
|
-
raise DruidTools::DifferentContentExistsError, "Unable to create link, directory already exists: #{new_path}"
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
real_path = File.expand_path('..', new_path)
|
|
138
|
-
FileUtils.mkdir_p(real_path)
|
|
139
|
-
FileUtils.ln_s(source, new_path, force: true)
|
|
140
|
-
end
|
|
141
|
-
deprecation_deprecate :mkdir_with_final_link
|
|
142
|
-
|
|
143
|
-
def rmdir(extra = nil)
|
|
144
|
-
parts = tree
|
|
145
|
-
parts << extra unless extra.nil?
|
|
146
|
-
until parts.empty?
|
|
147
|
-
dir = File.join(base, *parts)
|
|
148
|
-
begin
|
|
149
|
-
FileUtils.rm(File.join(dir, '.DS_Store'), force: true)
|
|
150
|
-
FileUtils.rmdir(dir)
|
|
151
|
-
rescue Errno::ENOTEMPTY
|
|
152
|
-
break
|
|
153
|
-
end
|
|
154
|
-
parts.pop
|
|
155
|
-
end
|
|
156
|
-
end
|
|
157
|
-
deprecation_deprecate :rmdir
|
|
158
|
-
|
|
159
127
|
def pathname
|
|
160
128
|
Pathname path
|
|
161
129
|
end
|
|
@@ -167,22 +135,5 @@ module DruidTools
|
|
|
167
135
|
def pruning_base
|
|
168
136
|
pathname.parent
|
|
169
137
|
end
|
|
170
|
-
|
|
171
|
-
def prune!
|
|
172
|
-
pruning_base.rmtree if pruning_base.exist? && pruning_base != base_pathname
|
|
173
|
-
prune_ancestors pruning_base.parent
|
|
174
|
-
end
|
|
175
|
-
deprecation_deprecate :prune!
|
|
176
|
-
|
|
177
|
-
# @param [Pathname] outermost_branch The branch at which pruning begins
|
|
178
|
-
# @return [void] Ascend the druid tree and prune empty branches
|
|
179
|
-
def prune_ancestors(outermost_branch)
|
|
180
|
-
while outermost_branch.exist? && outermost_branch.children.empty?
|
|
181
|
-
outermost_branch.rmdir
|
|
182
|
-
outermost_branch = outermost_branch.parent
|
|
183
|
-
break if outermost_branch == base_pathname
|
|
184
|
-
end
|
|
185
|
-
end
|
|
186
|
-
deprecation_deprecate :prune_ancestors
|
|
187
138
|
end
|
|
188
139
|
end
|
data/spec/druid_tools_spec.rb
CHANGED
|
@@ -119,8 +119,7 @@ RSpec.describe DruidTools::Druid do
|
|
|
119
119
|
expect(druid.path).to eq(tree1)
|
|
120
120
|
end
|
|
121
121
|
|
|
122
|
-
it '#mkdir creates
|
|
123
|
-
allow(Deprecation).to receive(:warn)
|
|
122
|
+
it '#mkdir creates the expected druid directory' do
|
|
124
123
|
expect(File.exist?(tree1)).to be false
|
|
125
124
|
expect(File.exist?(tree2)).to be false
|
|
126
125
|
expect(File.exist?(tree3)).to be false
|
|
@@ -143,22 +142,6 @@ RSpec.describe DruidTools::Druid do
|
|
|
143
142
|
expect(File.exist?(tree1)).to be true
|
|
144
143
|
expect(File.exist?(tree2)).to be true
|
|
145
144
|
expect(File.exist?(tree3)).to be true
|
|
146
|
-
|
|
147
|
-
druid3.rmdir
|
|
148
|
-
expect(File.exist?(tree1)).to be true
|
|
149
|
-
expect(File.exist?(tree2)).to be true
|
|
150
|
-
expect(File.exist?(tree3)).to be false
|
|
151
|
-
|
|
152
|
-
druid2.rmdir
|
|
153
|
-
expect(File.exist?(tree1)).to be true
|
|
154
|
-
expect(File.exist?(tree2)).to be false
|
|
155
|
-
expect(File.exist?(tree3)).to be false
|
|
156
|
-
|
|
157
|
-
druid1.rmdir
|
|
158
|
-
expect(File.exist?(tree1)).to be false
|
|
159
|
-
expect(File.exist?(tree2)).to be false
|
|
160
|
-
expect(File.exist?(tree3)).to be false
|
|
161
|
-
expect(File.exist?(File.join(fixture_dir, 'cd'))).to be false
|
|
162
145
|
end
|
|
163
146
|
|
|
164
147
|
describe 'alternate prefixes' do
|
|
@@ -304,116 +287,4 @@ RSpec.describe DruidTools::Druid do
|
|
|
304
287
|
expect { dr.mkdir }.to raise_error(DruidTools::DifferentContentExistsError)
|
|
305
288
|
end
|
|
306
289
|
end
|
|
307
|
-
|
|
308
|
-
describe '#mkdir_with_final_link' do
|
|
309
|
-
let(:source_dir) { '/tmp/content_dir' }
|
|
310
|
-
let(:druid_obj) { described_class.new(strictly_valid_druid_str, fixture_dir) }
|
|
311
|
-
|
|
312
|
-
before do
|
|
313
|
-
allow(Deprecation).to receive(:warn)
|
|
314
|
-
FileUtils.mkdir_p(source_dir)
|
|
315
|
-
end
|
|
316
|
-
|
|
317
|
-
it 'creates a druid tree in the workspace with the final directory being a link to the passed in source' do
|
|
318
|
-
druid_obj.mkdir_with_final_link(source_dir)
|
|
319
|
-
expect(File).to be_symlink(druid_obj.path)
|
|
320
|
-
expect(File.readlink(tree2)).to eq(source_dir)
|
|
321
|
-
end
|
|
322
|
-
|
|
323
|
-
it 'does not error out if the link to source already exists' do
|
|
324
|
-
druid_obj.mkdir_with_final_link(source_dir)
|
|
325
|
-
expect(File).to be_symlink(druid_obj.path)
|
|
326
|
-
expect(File.readlink(tree2)).to eq(source_dir)
|
|
327
|
-
end
|
|
328
|
-
|
|
329
|
-
it 'raises DifferentContentExistsError if a directory already exists in the workspace for this druid' do
|
|
330
|
-
druid_obj.mkdir(fixture_dir)
|
|
331
|
-
expect { druid_obj.mkdir_with_final_link(source_dir) }.to raise_error(DruidTools::DifferentContentExistsError)
|
|
332
|
-
end
|
|
333
|
-
end
|
|
334
|
-
|
|
335
|
-
describe '#prune!' do
|
|
336
|
-
let(:workspace) { Dir.mktmpdir }
|
|
337
|
-
let(:dr1) { described_class.new(druid_str, workspace) }
|
|
338
|
-
let(:dr2) { described_class.new(strictly_valid_druid_str, workspace) }
|
|
339
|
-
let(:dr3) { DruidTools::AccessDruid.new(access_druid_str, workspace) }
|
|
340
|
-
let(:pathname1) { dr1.pathname }
|
|
341
|
-
|
|
342
|
-
before do
|
|
343
|
-
allow(Deprecation).to receive(:warn)
|
|
344
|
-
end
|
|
345
|
-
|
|
346
|
-
after do
|
|
347
|
-
FileUtils.remove_entry workspace
|
|
348
|
-
end
|
|
349
|
-
|
|
350
|
-
context 'with an access druid sharing the first three path segments' do
|
|
351
|
-
before do
|
|
352
|
-
# Nil the create records for this context because we're in a known read only one
|
|
353
|
-
dr1.mkdir
|
|
354
|
-
dr2.mkdir
|
|
355
|
-
dr3.mkdir
|
|
356
|
-
dr3.prune!
|
|
357
|
-
end
|
|
358
|
-
|
|
359
|
-
it 'deletes the outermost directory' do
|
|
360
|
-
expect(File).not_to exist(dr3.pruning_base)
|
|
361
|
-
end
|
|
362
|
-
|
|
363
|
-
it 'does not delete unrelated ancestor directories' do
|
|
364
|
-
expect(File).to exist(dr1.pruning_base)
|
|
365
|
-
expect(File).to exist(dr1.pruning_base.parent)
|
|
366
|
-
end
|
|
367
|
-
|
|
368
|
-
it 'stops at ancestor directories that have children' do
|
|
369
|
-
# 'cd/456/ef' should still exist because of dr1
|
|
370
|
-
shared_ancestor = dr1.pruning_base.parent
|
|
371
|
-
expect(shared_ancestor.to_s).to match(%r{cd/456/ef$})
|
|
372
|
-
expect(File).to exist(shared_ancestor)
|
|
373
|
-
end
|
|
374
|
-
end
|
|
375
|
-
|
|
376
|
-
context 'when there is a shared ancestor' do
|
|
377
|
-
before do
|
|
378
|
-
# Nil the create records for this context because we're in a known read only one
|
|
379
|
-
dr1.mkdir
|
|
380
|
-
dr2.mkdir
|
|
381
|
-
dr1.prune!
|
|
382
|
-
end
|
|
383
|
-
|
|
384
|
-
it 'deletes the outermost directory' do
|
|
385
|
-
expect(File).not_to exist(dr1.path)
|
|
386
|
-
end
|
|
387
|
-
|
|
388
|
-
it 'deletes empty ancestor directories' do
|
|
389
|
-
expect(File).not_to exist(pathname1.parent)
|
|
390
|
-
expect(File).not_to exist(pathname1.parent.parent)
|
|
391
|
-
end
|
|
392
|
-
|
|
393
|
-
it 'stops at ancestor directories that have children' do
|
|
394
|
-
# 'cd/456' should still exist because of druid2
|
|
395
|
-
shared_ancestor = pathname1.parent.parent.parent
|
|
396
|
-
expect(shared_ancestor.to_s).to match(%r{cd/456$})
|
|
397
|
-
expect(File).to exist(shared_ancestor)
|
|
398
|
-
end
|
|
399
|
-
end
|
|
400
|
-
|
|
401
|
-
it 'removes all directories up to the base path when there are no common ancestors' do
|
|
402
|
-
# Nil the create records for this test
|
|
403
|
-
dr1.mkdir
|
|
404
|
-
dr1.prune!
|
|
405
|
-
expect(File).not_to exist(File.join(workspace, 'cd'))
|
|
406
|
-
expect(File).to exist(workspace)
|
|
407
|
-
end
|
|
408
|
-
|
|
409
|
-
it 'removes directories with symlinks' do
|
|
410
|
-
# Nil the create records for this test
|
|
411
|
-
source_dir = File.join workspace, 'src_dir'
|
|
412
|
-
FileUtils.mkdir_p(source_dir)
|
|
413
|
-
dr2.mkdir_with_final_link(source_dir)
|
|
414
|
-
dr2.prune!
|
|
415
|
-
expect(File).not_to exist(dr2.path)
|
|
416
|
-
expect(File).not_to exist(File.join(workspace, 'cd'))
|
|
417
|
-
end
|
|
418
|
-
end
|
|
419
290
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# $LOAD_PATH.unshift(File.expand_path('../../lib',__FILE__))
|
|
4
|
-
|
|
5
|
-
require 'coveralls'
|
|
6
|
-
Coveralls.wear_merged! # because we run travis on multiple rubies
|
|
7
|
-
|
|
8
3
|
require 'simplecov'
|
|
9
|
-
|
|
4
|
+
require 'tmpdir' # Dir.mktmpdir
|
|
10
5
|
SimpleCov.start do
|
|
11
6
|
add_filter 'spec'
|
|
12
7
|
end
|
metadata
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: druid-tools
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michael Klein
|
|
8
8
|
- Darren Hardy
|
|
9
|
-
autorequire:
|
|
9
|
+
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2022-
|
|
12
|
+
date: 2022-08-03 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
|
-
name:
|
|
15
|
+
name: rake
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
|
17
17
|
requirements:
|
|
18
18
|
- - ">="
|
|
19
19
|
- !ruby/object:Gem::Version
|
|
20
|
-
version:
|
|
21
|
-
type: :
|
|
20
|
+
version: 10.1.0
|
|
21
|
+
type: :development
|
|
22
22
|
prerelease: false
|
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
24
24
|
requirements:
|
|
25
25
|
- - ">="
|
|
26
26
|
- !ruby/object:Gem::Version
|
|
27
|
-
version:
|
|
27
|
+
version: 10.1.0
|
|
28
28
|
- !ruby/object:Gem::Dependency
|
|
29
|
-
name:
|
|
29
|
+
name: rspec
|
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
|
31
31
|
requirements:
|
|
32
|
-
- - "
|
|
32
|
+
- - "~>"
|
|
33
33
|
- !ruby/object:Gem::Version
|
|
34
|
-
version: '0'
|
|
34
|
+
version: '3.0'
|
|
35
35
|
type: :development
|
|
36
36
|
prerelease: false
|
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
|
38
38
|
requirements:
|
|
39
|
-
- - "
|
|
39
|
+
- - "~>"
|
|
40
40
|
- !ruby/object:Gem::Version
|
|
41
|
-
version: '0'
|
|
41
|
+
version: '3.0'
|
|
42
42
|
- !ruby/object:Gem::Dependency
|
|
43
|
-
name:
|
|
43
|
+
name: rubocop
|
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
|
45
45
|
requirements:
|
|
46
46
|
- - ">="
|
|
47
47
|
- !ruby/object:Gem::Version
|
|
48
|
-
version:
|
|
48
|
+
version: '0'
|
|
49
49
|
type: :development
|
|
50
50
|
prerelease: false
|
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
|
52
52
|
requirements:
|
|
53
53
|
- - ">="
|
|
54
54
|
- !ruby/object:Gem::Version
|
|
55
|
-
version:
|
|
55
|
+
version: '0'
|
|
56
56
|
- !ruby/object:Gem::Dependency
|
|
57
|
-
name:
|
|
57
|
+
name: rubocop-rake
|
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
|
59
59
|
requirements:
|
|
60
|
-
- - "
|
|
60
|
+
- - ">="
|
|
61
61
|
- !ruby/object:Gem::Version
|
|
62
|
-
version: '
|
|
62
|
+
version: '0'
|
|
63
63
|
type: :development
|
|
64
64
|
prerelease: false
|
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
|
66
66
|
requirements:
|
|
67
|
-
- - "
|
|
67
|
+
- - ">="
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
|
-
version: '
|
|
69
|
+
version: '0'
|
|
70
70
|
- !ruby/object:Gem::Dependency
|
|
71
|
-
name: rubocop
|
|
71
|
+
name: rubocop-rspec
|
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
|
73
73
|
requirements:
|
|
74
74
|
- - ">="
|
|
@@ -82,7 +82,7 @@ dependencies:
|
|
|
82
82
|
- !ruby/object:Gem::Version
|
|
83
83
|
version: '0'
|
|
84
84
|
- !ruby/object:Gem::Dependency
|
|
85
|
-
name:
|
|
85
|
+
name: simplecov
|
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
|
87
87
|
requirements:
|
|
88
88
|
- - ">="
|
|
@@ -109,6 +109,7 @@ files:
|
|
|
109
109
|
- ".rubocop.yml"
|
|
110
110
|
- ".rubocop_todo.yml"
|
|
111
111
|
- Gemfile
|
|
112
|
+
- Gemfile.lock
|
|
112
113
|
- LICENSE
|
|
113
114
|
- README.md
|
|
114
115
|
- Rakefile
|
|
@@ -129,7 +130,7 @@ licenses:
|
|
|
129
130
|
- Stanford University Libraries
|
|
130
131
|
metadata:
|
|
131
132
|
rubygems_mfa_required: 'true'
|
|
132
|
-
post_install_message:
|
|
133
|
+
post_install_message:
|
|
133
134
|
rdoc_options: []
|
|
134
135
|
require_paths:
|
|
135
136
|
- lib
|
|
@@ -144,11 +145,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
144
145
|
- !ruby/object:Gem::Version
|
|
145
146
|
version: '0'
|
|
146
147
|
requirements: []
|
|
147
|
-
rubygems_version: 3.
|
|
148
|
-
signing_key:
|
|
148
|
+
rubygems_version: 3.3.7
|
|
149
|
+
signing_key:
|
|
149
150
|
specification_version: 4
|
|
150
151
|
summary: Tools to manipulate DRUID trees and content directories
|
|
151
|
-
test_files:
|
|
152
|
-
- spec/druid_tools/purl_druid_spec.rb
|
|
153
|
-
- spec/druid_tools_spec.rb
|
|
154
|
-
- spec/spec_helper.rb
|
|
152
|
+
test_files: []
|