ro-crate 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|