Sha256: 28e080291765a463d7f8d1b104f8b5adbdba9d953b2cf1ed2bce88812e5b2800
Contents?: true
Size: 1.02 KB
Versions: 18
Compression:
Stored size: 1.02 KB
Contents
module ActiveFedora module WithMetadata extend ActiveSupport::Concern extend ActiveSupport::Autoload autoload :MetadataNode autoload :SweetJPLTerms autoload :DefaultStrategy autoload :DefaultSchema autoload :DefaultMetadataClassFactory included do class_attribute :metadata_class_factory self.metadata_class_factory = DefaultMetadataClassFactory end def metadata_node @metadata_node ||= self.class.metadata_schema.new(self) end def create_or_update(*) return unless super && !new_record? # TODOs captured as https://github.com/samvera/active_fedora/issues/1331 metadata_node.metadata_uri = described_by # TODO: only necessary if the URI was < > before metadata_node.save # TODO if changed? end module ClassMethods def metadata(&block) @metadata_schema = metadata_class_factory.build(self, &block) end def metadata_schema @metadata_schema ||= metadata_class_factory.build(self) end end end end
Version data entries
18 entries across 18 versions & 1 rubygems