ActiveFedora 5.3.0 and Rubydora 1.2.0 help solidify the contract with datastream implementors. They should ensure that any time the datastream `#content` is different than what’s in Fedora, the content is persisted without needing any extra steps (e.g. setting #content_will_change! manually). We expect ActiveFedora 5.3 may be more “chatty” with Fedora, but should improve overall consistency for developers. This release should also resolve some reported inconsistencies with Hydra Head 5.x applications.
ActiveFedora 5.3.0 also offers improvements to RDFDatastream. RDFDatastream now supports arbitrary RDF triples (before, it was biased towards assertions about the object). If you were using some low-level RDFDatastream methods (e.g. #get_values and #set _values), you may have to update your code.
Rubydora 1.2.0 simply incorporates some low-level changes that make this possible by:
- adding #datastream_content, which reflects the persisted content in Fedora
- overriding #content_changed? to not only check the ActiveModel::Dirty attributes, but also compare #content and #datastream_content to look for changes
- in addition, there is a special work-around for Fedora’s inline XML datastreams, which is necessary because Fedora normalizes inline XML automatically.
- fixes an issue with IO-type content to ensure Fedora will receive the full content, even if the IO-like object has been previously used.
All Hydra’s gems are linked from https://wiki.duraspace.org/display/hydra/Gems+and+documentation
Thanks to Chris Beer.