ro-crate 0.4.6 → 0.4.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,3 @@
1
+ chr1 66999824 67210768
2
+ chr7 48998526 50489626
3
+ chr1 66874821 66010368
@@ -0,0 +1,3 @@
1
+ CHR1 66874821 66010368
2
+ CHR1 66999824 67210768
3
+ CHR7 48998526 50489626
@@ -0,0 +1,8 @@
1
+ - doc: test with a small input
2
+ job:
3
+ bed_input:
4
+ class: File
5
+ path: input.bed
6
+ outputs:
7
+ uppercase_bed:
8
+ path: output_exp.bed
@@ -1,66 +1,67 @@
1
1
  <!DOCTYPE html>
2
2
  <html>
3
3
  <head>
4
- <title>New RO-Crate</title>
5
- <script type="application/ld+json">{
6
- "@context": "https://w3id.org/ro/crate/1.1/context",
7
- "@graph": [
8
- {
9
- "@id": "ro-crate-metadata.jsonld",
10
- "@type": "CreativeWork",
11
- "about": {
12
- "@id": "./"
13
- }
14
- },
15
- {
16
- "@id": "ro-crate-preview.html",
17
- "@type": "CreativeWork",
18
- "about": {
19
- "@id": "./"
20
- }
21
- },
22
- {
23
- "@id": "./",
24
- "@type": "Dataset",
25
- "hasPart": [
26
- {
27
- "@id": "fish/"
28
- }
29
- ]
30
- },
31
- {
32
- "@id": "fish/",
33
- "@type": "Dataset"
34
- }
35
- ]
36
- }</script>
37
- <meta name="generator" content="https://github.com/fbacall/ro-crate-ruby">
38
- <meta name="keywords" content="RO-Crate">
4
+ <title>New RO-Crate</title>
5
+ <script type="application/ld+json">{
6
+ "@context": "https://w3id.org/ro/crate/1.0/context",
7
+ "@graph": [
8
+ {
9
+ "@id": "ro-crate-metadata.jsonld",
10
+ "@type": "CreativeWork",
11
+ "about": {
12
+ "@id": "./"
13
+ }
14
+ },
15
+ {
16
+ "@id": "ro-crate-preview.html",
17
+ "@type": "CreativeWork",
18
+ "about": {
19
+ "@id": "./"
20
+ }
21
+ },
22
+ {
23
+ "@id": "./",
24
+ "@type": "Dataset",
25
+ "hasPart": [
26
+ {
27
+ "@id": "listed_file.txt"
28
+ }
29
+ ]
30
+ },
31
+ {
32
+ "@id": "listed_file.txt",
33
+ "@type": "File"
34
+ }
35
+ ]
36
+ }</script>
37
+ <meta name="generator" content="https://github.com/fbacall/ro-crate-ruby">
38
+ <meta name="keywords" content="RO-Crate">
39
39
  </head>
40
40
  <body>
41
- <h1>New RO-Crate</h1>
42
-
43
- <p>
44
-
45
- </p>
46
- <dl>
47
-
48
-
49
-
50
-
51
- </dl>
41
+ <h1>New RO-Crate</h1>
42
+ Some stuff has been added here blablabla
52
43
 
53
- <h2>Contents</h2>
54
- <ul>
55
-
56
- <li id="__data_entity_fish/">
57
-
58
- <strong>fish/</strong>
59
-
60
-
61
-
62
- </li>
63
-
64
- </ul>
44
+ <p>
45
+
46
+ </p>
47
+ <dl>
48
+
49
+
50
+
51
+
52
+ </dl>
53
+
54
+ <h2>Contents</h2>
55
+ <ul>
56
+
57
+ <li id="__data_entity_listed_file.txt">
58
+
59
+ <strong>listed_file.txt</strong>
60
+
61
+
62
+
63
+ </li>
64
+
65
+ </ul>
65
66
  </body>
66
- </html>
67
+ </html>
data/test/reader_test.rb CHANGED
@@ -195,4 +195,60 @@ class ReaderTest < Test::Unit::TestCase
195
195
  assert crate.entries['fish/data/binary.jpg']
196
196
  assert_equal ['./', 'listed_file.txt', 'ro-crate-metadata.jsonld', 'ro-crate-preview.html'], crate.entities.map(&:id).sort
197
197
  end
198
+
199
+ test 'reading a zip from various object types' do
200
+ string_io = StringIO.new
201
+ string_io.write(::File.read(fixture_file('sparse_directory_crate.zip').path))
202
+ string_io.rewind
203
+ assert string_io.is_a?(StringIO)
204
+ assert_equal 11, ROCrate::Reader.read_zip(string_io).entries.count
205
+
206
+ path = Pathname.new(fixture_file('sparse_directory_crate.zip').path)
207
+ assert path.is_a?(Pathname)
208
+ assert_equal 11, ROCrate::Reader.read_zip(path).entries.count
209
+
210
+ file = ::File.open(fixture_file('sparse_directory_crate.zip').path)
211
+ assert file.is_a?(::File)
212
+ assert_equal 11, ROCrate::Reader.read_zip(file).entries.count
213
+
214
+ string = fixture_file('sparse_directory_crate.zip').path
215
+ assert string.is_a?(String)
216
+ assert_equal 11, ROCrate::Reader.read_zip(string).entries.count
217
+ end
218
+
219
+ test 'reading from zip where the crate root is nested somewhere within' do
220
+ crate = ROCrate::Reader.read_zip(fixture_file('nested_directory.zip'))
221
+
222
+ assert crate.entries['fish/info.txt']
223
+ assert_equal '1234', crate.entries['fish/info.txt'].source.read.chomp
224
+ assert crate.entries['fish/root.txt']
225
+ assert crate.entries['fish/data/info.txt']
226
+ assert crate.entries['fish/data/nested.txt']
227
+ assert crate.entries['fish/data/binary.jpg']
228
+ assert_equal ['./', 'fish/', 'ro-crate-metadata.json', 'ro-crate-preview.html'], crate.entities.map(&:id).sort
229
+ end
230
+
231
+ test 'reading preserves any additions to @context' do
232
+ crate = ROCrate::Reader.read_directory(fixture_file('ro-crate-galaxy-sortchangecase').path)
233
+
234
+ context = crate.metadata.context
235
+ assert_equal [
236
+ 'https://w3id.org/ro/crate/1.1/context',
237
+ {
238
+ 'TestSuite' => 'https://w3id.org/ro/terms/test#TestSuite',
239
+ 'TestInstance' => 'https://w3id.org/ro/terms/test#TestInstance',
240
+ 'TestService' => 'https://w3id.org/ro/terms/test#TestService',
241
+ 'TestDefinition' => 'https://w3id.org/ro/terms/test#TestDefinition',
242
+ 'PlanemoEngine' => 'https://w3id.org/ro/terms/test#PlanemoEngine',
243
+ 'JenkinsService' => 'https://w3id.org/ro/terms/test#JenkinsService',
244
+ 'TravisService' => 'https://w3id.org/ro/terms/test#TravisService',
245
+ 'GithubService' => 'https://w3id.org/ro/terms/test#GithubService',
246
+ 'instance' => 'https://w3id.org/ro/terms/test#instance',
247
+ 'runsOn' => 'https://w3id.org/ro/terms/test#runsOn',
248
+ 'resource' => 'https://w3id.org/ro/terms/test#resource',
249
+ 'definition' => 'https://w3id.org/ro/terms/test#definition',
250
+ 'engineVersion' => 'https://w3id.org/ro/terms/test#engineVersion'
251
+ }
252
+ ], context
253
+ end
198
254
  end
data/test/writer_test.rb CHANGED
@@ -124,12 +124,32 @@ class WriterTest < Test::Unit::TestCase
124
124
  actual_files = Dir.chdir(dir) { Dir.glob('**/*') }
125
125
  assert_equal expected_files, actual_files
126
126
  expected_files.each do |file|
127
- next if file == 'ro-crate-metadata.jsonld' # Expected context gets updated.
128
- next if file == 'ro-crate-preview.html' # RO-Crate preview format changed
129
127
  abs_file_path = ::File.join(fixture, file)
130
128
  next if ::File.directory?(abs_file_path)
131
129
  assert_equal ::File.read(abs_file_path), ::File.read(::File.join(dir, file)), "#{file} didn't match"
132
130
  end
133
131
  end
134
132
  end
133
+
134
+ test 'reading/writing multiple times does not change the crate' do
135
+ input_dir = fixture_file('sparse_directory_crate').path
136
+ Dir.mktmpdir do |dir|
137
+ 3.times do |i|
138
+ output_dir = ::File.join(dir, "new_directory_#{i}")
139
+ crate = ROCrate::Reader.read(input_dir)
140
+
141
+ ROCrate::Writer.new(crate).write(output_dir)
142
+ expected_files = Dir.chdir(input_dir) { Dir.glob('**/*') }
143
+ actual_files = Dir.chdir(output_dir) { Dir.glob('**/*') }
144
+ assert_equal expected_files, actual_files
145
+ expected_files.each do |file|
146
+ abs_file_path = ::File.join(input_dir, file)
147
+ next if ::File.directory?(abs_file_path)
148
+ assert_equal ::File.read(abs_file_path), ::File.read(::File.join(output_dir, file)), "#{file} didn't match"
149
+ end
150
+
151
+ input_dir = output_dir
152
+ end
153
+ end
154
+ end
135
155
  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.4.6
4
+ version: 0.4.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Finn Bacall
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-25 00:00:00.000000000 Z
11
+ date: 2021-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.16.1
75
+ version: 0.21.2
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.16.1
82
+ version: 0.21.2
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: yard
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -137,6 +137,7 @@ files:
137
137
  - lib/ro_crate/model/organization.rb
138
138
  - lib/ro_crate/model/person.rb
139
139
  - lib/ro_crate/model/preview.rb
140
+ - lib/ro_crate/model/preview_generator.rb
140
141
  - lib/ro_crate/model/remote_entry.rb
141
142
  - lib/ro_crate/reader.rb
142
143
  - lib/ro_crate/ro-crate-preview.html.erb
@@ -165,6 +166,14 @@ files:
165
166
  - test/fixtures/directory_crate/ro-crate-preview.html
166
167
  - test/fixtures/file with spaces.txt
167
168
  - test/fixtures/info.txt
169
+ - test/fixtures/nested_directory.zip
170
+ - test/fixtures/ro-crate-galaxy-sortchangecase/LICENSE
171
+ - test/fixtures/ro-crate-galaxy-sortchangecase/README.md
172
+ - test/fixtures/ro-crate-galaxy-sortchangecase/ro-crate-metadata.json
173
+ - test/fixtures/ro-crate-galaxy-sortchangecase/sort-and-change-case.ga
174
+ - test/fixtures/ro-crate-galaxy-sortchangecase/test/test1/input.bed
175
+ - test/fixtures/ro-crate-galaxy-sortchangecase/test/test1/output_exp.bed
176
+ - test/fixtures/ro-crate-galaxy-sortchangecase/test/test1/sort-and-change-case-test.yml
168
177
  - test/fixtures/spaces/file with spaces.txt
169
178
  - test/fixtures/spaces/ro-crate-metadata.jsonld
170
179
  - test/fixtures/sparse_directory_crate.zip