Sha256: e77ba1181040a9fb782d5005f07eb5e132b1963370ae66e5eb67fa5503ef55c1
Contents?: true
Size: 1.26 KB
Versions: 1
Compression:
Stored size: 1.26 KB
Contents
module Cul::Scv::Hydra::ActiveFedora::Model module Aggregator extend ActiveSupport::Concern included do has_metadata :name => "structMetadata", :type=>Cul::Scv::Hydra::ActiveFedora::Model::StructMetadata, :versionable => true, :controlGroup => 'M' has_many :parts, :property => :cul_member_of, :class_name=>'ActiveFedora::Base' after_create :aggregator! end def aggregator! add_relationship(:rdf_type, Cul::Scv::Hydra::ActiveFedora::AGGREGATOR_TYPE.to_s) @metadata_is_dirty = true self.save end def add_member(member, container=self) member.add_relationship(:cul_member_of, to_uri(container)) member.datastreams["RELS-EXT"].content_will_change! member.save end def remove_member(member, container=self) rel = ActiveFedora::Relationship.new() rel.subject_pid= :self rel.object = to_uri(container) rel.predicate = :cul_member_of member.remove_relationship(rel) member.datastreams["RELS-EXT"].content_will_change! member.save end private def to_uri(obj) if obj.respond_to? :internal_uri return obj.internal_uri end obj = obj.pid unless obj.is_a? String if obj.is_a? String and obj =~ /\A[\w\-]+:[\w\-]+\Z/ obj = "info:fedora/#{obj}" end return obj end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cul_scv_hydra-0.10.0 | lib/cul_scv_hydra/active_fedora/model/aggregator.rb |