Method: Moab::StorageObject#ingest_bag
- Defined in:
- lib/moab/storage_object.rb
#ingest_bag(bag_dir = deposit_bag_pathname) ⇒ void
This method returns an undefined value.
Returns Ingest a new object version contained in a bag into this objects storage area.
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/moab/storage_object.rb', line 62 def ingest_bag(bag_dir = deposit_bag_pathname) bag_dir = Pathname(bag_dir) current_version = StorageObjectVersion.new(self, current_version_id) current_inventory = current_version.file_inventory('version') new_version = StorageObjectVersion.new(self, current_version_id + 1) if FileInventory.xml_pathname_exist?(bag_dir, 'version') new_inventory = FileInventory.read_xml_file(bag_dir, 'version') elsif current_version.version_id == 0 new_inventory = versionize_bag(bag_dir, current_version, new_version) end validate_new_inventory(new_inventory) new_version.ingest_bag_data(bag_dir) new_version.update_catalog(current_version.signature_catalog, new_inventory) new_version.generate_differences_report(current_inventory, new_inventory) new_version.generate_manifest_inventory new_version end |