ro-crate 0.5.0 → 0.5.1
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/Gemfile.lock +1 -1
- data/lib/ro_crate/model/data_entity.rb +41 -5
- data/lib/ro_crate/model/directory.rb +17 -12
- data/lib/ro_crate/model/file.rb +4 -25
- data/lib/ro_crate/model/remote_entry.rb +3 -2
- data/ro_crate.gemspec +1 -1
- data/test/fixtures/uri_heavy_crate/main.nf +2 -0
- data/test/fixtures/uri_heavy_crate/ro-crate-metadata.json +7071 -0
- data/test/fixtures/uri_heavy_crate/ro-crate-preview.html +3678 -0
- data/test/reader_test.rb +24 -0
- data/test/writer_test.rb +35 -0
- metadata +5 -2
data/test/reader_test.rb
CHANGED
@@ -279,4 +279,28 @@ class ReaderTest < Test::Unit::TestCase
|
|
279
279
|
assert entity.has_type?('RepositoryCollection')
|
280
280
|
assert entity.payload.empty?
|
281
281
|
end
|
282
|
+
|
283
|
+
test 'reading RO-Crate with absolute URI files/directories' do
|
284
|
+
crate = ROCrate::Reader.read(fixture_file('uri_heavy_crate').path)
|
285
|
+
|
286
|
+
dir = crate.get('nih:sha-256;f70e-eb2e-89d0-b3dc-5c99-8541-fa4b-6e64-a194-cf9d-ebd8-ca58-24e7-c47a-553f-86fa;c/')
|
287
|
+
assert dir
|
288
|
+
assert dir.is_a?(ROCrate::Directory)
|
289
|
+
assert dir.remote?
|
290
|
+
assert_empty dir.payload
|
291
|
+
|
292
|
+
file = crate.get('nih:sha-256;3a2c-8d14-a40b-3755-4abc-5af8-a56d-ba3a-e159-d688-c9b3-f169-6751-4b88-fbd2-6a9f;7')
|
293
|
+
assert file
|
294
|
+
assert file.is_a?(ROCrate::File)
|
295
|
+
assert file.remote?
|
296
|
+
assert_empty file.payload
|
297
|
+
|
298
|
+
real_file = crate.get('main.nf')
|
299
|
+
assert real_file
|
300
|
+
assert real_file.is_a?(ROCrate::File)
|
301
|
+
refute real_file.remote?
|
302
|
+
assert_not_empty real_file.payload
|
303
|
+
refute real_file.payload.values.first.remote?
|
304
|
+
refute real_file.payload.values.first.directory?
|
305
|
+
end
|
282
306
|
end
|
data/test/writer_test.rb
CHANGED
@@ -227,4 +227,39 @@ class WriterTest < Test::Unit::TestCase
|
|
227
227
|
end
|
228
228
|
end
|
229
229
|
end
|
230
|
+
|
231
|
+
test 'write crate with remote files and directories' do
|
232
|
+
orig = ROCrate::Reader.read(fixture_file('uri_heavy_crate').path)
|
233
|
+
Tempfile.create do |file|
|
234
|
+
ROCrate::Writer.new(orig).write_zip(file)
|
235
|
+
|
236
|
+
Zip::File.open(file) do |zipfile|
|
237
|
+
refute zipfile.find_entry('nih:sha-256;3a2c-8d14-a40b-3755-4abc-5af8-a56d-ba3a-e159-d688-c9b3-f169-6751-4b88-fbd2-6a9f;7')
|
238
|
+
end
|
239
|
+
|
240
|
+
file.rewind
|
241
|
+
|
242
|
+
crate = ROCrate::Reader.read(file)
|
243
|
+
|
244
|
+
dir = crate.get('nih:sha-256;f70e-eb2e-89d0-b3dc-5c99-8541-fa4b-6e64-a194-cf9d-ebd8-ca58-24e7-c47a-553f-86fa;c/')
|
245
|
+
assert dir
|
246
|
+
assert dir.is_a?(ROCrate::Directory)
|
247
|
+
assert dir.remote?
|
248
|
+
assert_empty dir.payload
|
249
|
+
|
250
|
+
file = crate.get('nih:sha-256;3a2c-8d14-a40b-3755-4abc-5af8-a56d-ba3a-e159-d688-c9b3-f169-6751-4b88-fbd2-6a9f;7')
|
251
|
+
assert file
|
252
|
+
assert file.is_a?(ROCrate::File)
|
253
|
+
assert file.remote?
|
254
|
+
assert_empty file.payload
|
255
|
+
|
256
|
+
real_file = crate.get('main.nf')
|
257
|
+
assert real_file
|
258
|
+
assert real_file.is_a?(ROCrate::File)
|
259
|
+
refute real_file.remote?
|
260
|
+
assert_not_empty real_file.payload
|
261
|
+
refute real_file.payload.values.first.remote?
|
262
|
+
refute real_file.payload.values.first.directory?
|
263
|
+
end
|
264
|
+
end
|
230
265
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ro-crate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Finn Bacall
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -217,6 +217,9 @@ files:
|
|
217
217
|
- test/fixtures/unlinked_entity_crate/test/test1/input.bed
|
218
218
|
- test/fixtures/unlinked_entity_crate/test/test1/output_exp.bed
|
219
219
|
- test/fixtures/unlinked_entity_crate/test/test1/sort-and-change-case-test.yml
|
220
|
+
- test/fixtures/uri_heavy_crate/main.nf
|
221
|
+
- test/fixtures/uri_heavy_crate/ro-crate-metadata.json
|
222
|
+
- test/fixtures/uri_heavy_crate/ro-crate-preview.html
|
220
223
|
- test/fixtures/workflow-0.2.0.zip
|
221
224
|
- test/fixtures/workflow-0.2.0/Dockerfile
|
222
225
|
- test/fixtures/workflow-0.2.0/README.md
|