ro-crate 0.4.3 → 0.4.4
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/crate.rb +1 -1
- data/lib/ro_crate/model/directory.rb +7 -1
- data/ro_crate.gemspec +1 -1
- data/test/crate_test.rb +14 -3
- data/test/fixtures/directory/.dir/test.txt +1 -0
- data/test/fixtures/directory/.dotfile +1 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e3f58e7b54e7d04913b3ab7ed778fe0c2fbfa01c9571ec7d5c62d9fb7ec9555
|
4
|
+
data.tar.gz: 5b544b0a343c185571a2fccc1438bfd53426b7f6a02d4605b4d7a7f517058560
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e12c059af0471d6423fc0af754713d66f0d654d3196d331fc2d3a8a7d9f6642e8e7fada4749ad7fa2b7478cc64be4652b09aba2d1851d2d7f44100d1d52a6b14
|
7
|
+
data.tar.gz: c0c2654d4261aad3f2e9db64b64338af9425e7aea73a92848a98561bf27ea3f0489a926857efc5e80990475b17b42a499657cad292e8b0e8d7593be647ab6d80
|
data/Gemfile.lock
CHANGED
data/lib/ro_crate/model/crate.rb
CHANGED
@@ -73,7 +73,7 @@ module ROCrate
|
|
73
73
|
def add_all(source_directory, create_entities = true)
|
74
74
|
added = []
|
75
75
|
|
76
|
-
|
76
|
+
list_all_files(source_directory).each do |rel_path|
|
77
77
|
source_path = Pathname.new(::File.join(source_directory, rel_path)).expand_path
|
78
78
|
if create_entities
|
79
79
|
if source_path.directory?
|
@@ -57,7 +57,7 @@ module ROCrate
|
|
57
57
|
def populate_entries(source_directory)
|
58
58
|
raise 'Not a directory' unless ::File.directory?(source_directory)
|
59
59
|
@directory_entries = {}
|
60
|
-
|
60
|
+
list_all_files(source_directory).each do |rel_path|
|
61
61
|
source_path = Pathname.new(::File.join(source_directory, rel_path)).expand_path
|
62
62
|
@directory_entries[rel_path] = Entry.new(source_path)
|
63
63
|
end
|
@@ -69,6 +69,12 @@ module ROCrate
|
|
69
69
|
::File.join(filepath, relative_path)
|
70
70
|
end
|
71
71
|
|
72
|
+
def list_all_files(source_directory)
|
73
|
+
Dir.chdir(source_directory) { Dir.glob('**/*', ::File::FNM_DOTMATCH) }.reject do |path|
|
74
|
+
path == '.' || path == '..' || path.end_with?('/.')
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
72
78
|
def default_properties
|
73
79
|
super.merge(
|
74
80
|
'@id' => "#{SecureRandom.uuid}/",
|
data/ro_crate.gemspec
CHANGED
data/test/crate_test.rb
CHANGED
@@ -204,25 +204,32 @@ class CrateTest < Test::Unit::TestCase
|
|
204
204
|
entities = crate.add_all(fixture_file('directory').path)
|
205
205
|
|
206
206
|
paths = crate.entries.keys
|
207
|
-
assert_equal
|
207
|
+
assert_equal 11, paths.length
|
208
208
|
assert_includes paths, 'data'
|
209
209
|
assert_includes paths, 'root.txt'
|
210
210
|
assert_includes paths, 'info.txt'
|
211
211
|
assert_includes paths, 'data/binary.jpg'
|
212
212
|
assert_includes paths, 'data/info.txt'
|
213
213
|
assert_includes paths, 'data/nested.txt'
|
214
|
+
assert_includes paths, '.dotfile'
|
215
|
+
assert_includes paths, '.dir'
|
216
|
+
assert_includes paths, '.dir/test.txt'
|
214
217
|
assert_includes paths, 'ro-crate-metadata.json'
|
215
218
|
assert_includes paths, 'ro-crate-preview.html'
|
216
219
|
|
217
|
-
assert_equal
|
220
|
+
assert_equal 9, entities.length
|
218
221
|
assert_equal 'ROCrate::Directory', crate.dereference('data/').class.name
|
219
222
|
assert_equal 'ROCrate::File', crate.dereference('root.txt').class.name
|
220
223
|
assert_equal 'ROCrate::File', crate.dereference('info.txt').class.name
|
221
224
|
assert_equal 'ROCrate::File', crate.dereference('data/binary.jpg').class.name
|
222
225
|
assert_equal 'ROCrate::File', crate.dereference('data/info.txt').class.name
|
223
226
|
assert_equal 'ROCrate::File', crate.dereference('data/nested.txt').class.name
|
227
|
+
assert_equal 'ROCrate::File', crate.dereference('.dotfile').class.name
|
228
|
+
assert_equal 'ROCrate::Directory', crate.dereference('.dir/').class.name
|
229
|
+
assert_equal 'ROCrate::File', crate.dereference('.dir/test.txt').class.name
|
224
230
|
|
225
231
|
assert_equal "5678\n", crate.dereference('data/info.txt').source.read
|
232
|
+
assert_equal "Am I included?\n", crate.dereference('.dotfile').source.read
|
226
233
|
end
|
227
234
|
|
228
235
|
test 'can create an RO-Crate using content from a given directory' do
|
@@ -232,13 +239,16 @@ class CrateTest < Test::Unit::TestCase
|
|
232
239
|
assert_empty entities
|
233
240
|
|
234
241
|
paths = crate.entries.keys
|
235
|
-
assert_equal
|
242
|
+
assert_equal 11, paths.length
|
236
243
|
assert_includes paths, 'data'
|
237
244
|
assert_includes paths, 'root.txt'
|
238
245
|
assert_includes paths, 'info.txt'
|
239
246
|
assert_includes paths, 'data/binary.jpg'
|
240
247
|
assert_includes paths, 'data/info.txt'
|
241
248
|
assert_includes paths, 'data/nested.txt'
|
249
|
+
assert_includes paths, '.dotfile'
|
250
|
+
assert_includes paths, '.dir'
|
251
|
+
assert_includes paths, '.dir/test.txt'
|
242
252
|
assert_includes paths, 'ro-crate-metadata.json'
|
243
253
|
assert_includes paths, 'ro-crate-preview.html'
|
244
254
|
|
@@ -249,5 +259,6 @@ class CrateTest < Test::Unit::TestCase
|
|
249
259
|
assert_nil crate.dereference('data/binary.jpg')
|
250
260
|
assert_nil crate.dereference('data/info.txt')
|
251
261
|
assert_nil crate.dereference('data/nested.txt')
|
262
|
+
assert_nil crate.dereference('.dotfile')
|
252
263
|
end
|
253
264
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
123
|
@@ -0,0 +1 @@
|
|
1
|
+
Am I included?
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ro-crate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Finn Bacall
|
@@ -149,6 +149,8 @@ files:
|
|
149
149
|
- test/fixtures/crate-spec1.1/ro-crate-metadata.json
|
150
150
|
- test/fixtures/data.csv
|
151
151
|
- test/fixtures/directory.zip
|
152
|
+
- test/fixtures/directory/.dir/test.txt
|
153
|
+
- test/fixtures/directory/.dotfile
|
152
154
|
- test/fixtures/directory/data/binary.jpg
|
153
155
|
- test/fixtures/directory/data/info.txt
|
154
156
|
- test/fixtures/directory/data/nested.txt
|