Class: Dor::DigitalStacksService
- Inherits:
-
Object
- Object
- Dor::DigitalStacksService
- Defined in:
- lib/dor/services/digital_stacks_service.rb
Class Method Summary collapse
- .prune_purl_dir(id) ⇒ Object
-
.prune_stacks_dir(id) ⇒ Object
Assumes the digital stacks storage root is mounted to the local file system TODO since this is delegating to the Druid, this method may not be necessary.
- .remove_from_stacks(id, files) ⇒ Object
- .rename_in_stacks(id, file_map) ⇒ Object
- .shelve_to_stacks(id, files) ⇒ Object
- .transfer_to_document_store(id, content, filename) ⇒ Object
Class Method Details
.prune_purl_dir(id) ⇒ Object
50 51 52 53 |
# File 'lib/dor/services/digital_stacks_service.rb', line 50 def self.prune_purl_dir(id) druid = DruidTools::PurlDruid.new(id, Dor::Config.stacks.local_document_cache_root) druid.prune! end |
.prune_stacks_dir(id) ⇒ Object
Assumes the digital stacks storage root is mounted to the local file system TODO since this is delegating to the Druid, this method may not be necessary
45 46 47 48 |
# File 'lib/dor/services/digital_stacks_service.rb', line 45 def self.prune_stacks_dir(id) stacks_druid_tree = DruidTools::StacksDruid.new(id, Config.stacks.local_stacks_root) stacks_druid_tree.prune! end |
.remove_from_stacks(id, files) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/dor/services/digital_stacks_service.rb', line 13 def self.remove_from_stacks(id, files) files.each do |file| dr = DruidTools::StacksDruid.new id, Config.stacks.local_stacks_root content = dr.find_content file FileUtils.rm content if content end end |
.rename_in_stacks(id, file_map) ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/dor/services/digital_stacks_service.rb', line 24 def self.rename_in_stacks(id, file_map) return if file_map.nil? or file_map.empty? dr = DruidTools::StacksDruid.new id, Config.stacks.local_stacks_root content_dir = dr.find_filelist_parent('content', file_map.first.first) file_map.each do |src, dest| File.rename(File.join(content_dir, src), File.join(content_dir, dest)) end end |
.shelve_to_stacks(id, files) ⇒ Object
33 34 35 36 37 38 39 40 41 |
# File 'lib/dor/services/digital_stacks_service.rb', line 33 def self.shelve_to_stacks(id, files) workspace_druid = DruidTools::Druid.new(id,Config.stacks.local_workspace_root) stacks_druid = DruidTools::StacksDruid.new(id,Config.stacks.local_stacks_root) files.each do |file| stacks_druid.content_dir workspace_file = workspace_druid.find_content(file) FileUtils.cp workspace_file, stacks_druid.content_dir end end |
.transfer_to_document_store(id, content, filename) ⇒ Object
7 8 9 10 11 |
# File 'lib/dor/services/digital_stacks_service.rb', line 7 def self.transfer_to_document_store(id, content, filename) druid = DruidTools::PurlDruid.new id, Config.stacks.local_document_cache_root druid.content_dir # create the druid tree if it doesn't exist yet File.open(File.join(druid.content_dir, filename), 'w') {|f| f.write content } end |