ocfl 0.3.0 → 0.4.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/lib/ocfl/object/draft_version.rb +22 -17
- data/lib/ocfl/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 256cd51a71d4728f32b12904cd02153e92a3a054e0b7b9ee7f18f7aca7a34320
|
4
|
+
data.tar.gz: d8bfb5f8571e998710fb6e7e5f245e7723886d3db26c0c54537f2b172d456d46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3aad0f2020ef90a36b3fdf71129e9bd84fce068e665eecb08e00d37cd897d7d5c91298ed8dfaadc0b6d8a27060cb5306eb85bbbe630267fb8889989279a795f
|
7
|
+
data.tar.gz: '07609a37af93df25a2d836f46d42591972514265272f6a4fe3e1bf333198f7c98eae07e8ce5f21499967340627a2013f2f6e450433af3824f0146d855f0c03c8'
|
@@ -25,25 +25,38 @@ module OCFL
|
|
25
25
|
FileUtils.mv(incoming_path, content_path)
|
26
26
|
end
|
27
27
|
|
28
|
-
def copy_file(incoming_path)
|
28
|
+
def copy_file(incoming_path, destination_path: '')
|
29
29
|
prepare_content_directory
|
30
|
-
|
31
|
-
FileUtils.cp(incoming_path, content_path)
|
30
|
+
copy_one(File.basename(incoming_path), incoming_path, destination_path)
|
32
31
|
end
|
33
32
|
|
34
33
|
# Copies files into the object and preserves their relative paths as logical directories in the object
|
35
|
-
def copy_recursive(incoming_path)
|
34
|
+
def copy_recursive(incoming_path, destination_path: '')
|
36
35
|
prepare_content_directory
|
37
36
|
incoming_path = incoming_path.delete_suffix("/")
|
38
37
|
Dir.glob("#{incoming_path}/**/*").reject { |fn| File.directory?(fn) }.each do |file|
|
39
|
-
|
40
|
-
add(file, logical_file_path:)
|
41
|
-
parent_dir = (content_path + logical_file_path).parent
|
42
|
-
FileUtils.mkdir_p(parent_dir)
|
43
|
-
FileUtils.cp(file, content_path + logical_file_path)
|
38
|
+
copy_one(file.delete_prefix(incoming_path).delete_prefix("/"), file, destination_path)
|
44
39
|
end
|
45
40
|
end
|
46
41
|
|
42
|
+
def save
|
43
|
+
inventory = build_inventory
|
44
|
+
InventoryWriter.new(inventory:, path:).write
|
45
|
+
FileUtils.cp(path + "inventory.json", object_directory.object_root)
|
46
|
+
FileUtils.cp(path + "inventory.json.sha512", object_directory.object_root)
|
47
|
+
object_directory.reload
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def copy_one(logical_file_path, incoming_path, destination_path)
|
53
|
+
logical_file_path = File.join(destination_path, logical_file_path) unless destination_path.empty?
|
54
|
+
add(incoming_path, logical_file_path:)
|
55
|
+
parent_dir = (content_path + logical_file_path).parent
|
56
|
+
FileUtils.mkdir_p(parent_dir) unless parent_dir == content_path
|
57
|
+
FileUtils.cp(incoming_path, content_path + logical_file_path)
|
58
|
+
end
|
59
|
+
|
47
60
|
def add(incoming_path, logical_file_path: File.basename(incoming_path))
|
48
61
|
digest = Digest::SHA512.file(incoming_path).to_s
|
49
62
|
version_content_path = content_path.relative_path_from(object_directory.object_root)
|
@@ -95,14 +108,6 @@ module OCFL
|
|
95
108
|
shas_in_versions = versions.values.flat_map { |v| v.state.keys }.uniq
|
96
109
|
manifest.slice(*shas_in_versions)
|
97
110
|
end
|
98
|
-
|
99
|
-
def save
|
100
|
-
inventory = build_inventory
|
101
|
-
InventoryWriter.new(inventory:, path:).write
|
102
|
-
FileUtils.cp(path + "inventory.json", object_directory.object_root)
|
103
|
-
FileUtils.cp(path + "inventory.json.sha512", object_directory.object_root)
|
104
|
-
object_directory.reload
|
105
|
-
end
|
106
111
|
end
|
107
112
|
end
|
108
113
|
end
|
data/lib/ocfl/version.rb
CHANGED