A Hydra gem for adding BagIt functionality to ActiveFedora models.
Add this line to your application's Gemfile:
And then execute:
Or install it yourself as:
$ gem install hybag
Include the module in ActiveFedora models you'd like to be baggable
class TestClass < ActiveFedora::Base include :: end
To convert an exported bag back to a model
NOTE: Right now for this to work there must be datastreams defined on the discovered model which match the metadata datastream IDs as tag files and content datastream IDs as data files. This means for a descMetadata datastream to be populated bag_root/descMetadata.* (where * is the extension) must exist.
result = .(BagIt::Bag.new("/path/to/bag")) result.class # => Model in fedora/rels-ext.rdf (preferred) or hybag.yml in bag root. More info below. result.persisted? # => false
Determining the model name.
Currently the model name is determined from the bag's fedora/rels-ext.rdf file (which Hybag::Baggable exports) or is configurable via a block as shown before
bag = Bagit::Bag.new("/path/to/bag") test_class = .(bag) do |ingester| ingester.bag == bag # => true ingester.model_name = "ActiveFedora::Base" end test_class.class # => ActiveFedora::Base
Write the item to disk in rails_root/tmp/bags/filler/pid
test_class = TestClass.new.write_bag('filler')
Delete a bag that was written already
- Fork it
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Push to the branch (
git push origin my-new-feature)
- Create new Pull Request