Last active
August 29, 2015 14:23
-
-
Save elrayle/409e4a773e49d9a15b12 to your computer and use it in GitHub Desktop.
implementation of pcdm:order
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module Hydra::PCDM | |
| class Order < ActiveFedora::Base | |
| include Hydra::PCDM::OrderBehavior | |
| end | |
| end | |
| module Hydra::PCDM | |
| module OrderBehavior | |
| extend ActiveSupport::Concern | |
| # behaviors | |
| * order members must be pcdm:Collection and/or pcdm:Object | |
| # behavior: | |
| # 1) Hydra::PCDM::Order can aggregate (pcdm:hasMember) Hydra::PCDM::Collection | |
| # 2) Hydra::PCDM::Order can aggregate (pcdm:hasMember) Hydra::PCDM::Object | |
| # 3) Hydra::PCDM::Order can aggregate (ore:aggregates) Hydra::PCDM::Object (Object related to the Order) | |
| # 4) Hydra::PCDM::Order can contain (pcdm:hasRelatedFile) Hydra::PCDM::File | |
| # 5) Hydra::PCDM::Order can NOT aggregate Hydra:PCDM:Order | |
| # 6) Hydra::PCDM::Order can NOT aggregate non-PCDM object | |
| # 7) Hydra::PCDM::Order can NOT contain (pcdm:hasFile) Hydra::PCDM::File | |
| # 8) Hydra::PCDM::Order can have descriptive metadata | |
| # 9) Hydra::PCDM::Order can have access metadata | |
| included do | |
| type RDFVocabularies::PCDMTerms.Order | |
| # members can be collections and/or objects | |
| aggregates :members, predicate: RDFVocabularies::PCDMTerms.hasMember, class_name: "ActiveFedora::Base" | |
| # related objects | |
| indirectly_contains :related_objects, has_member_relation: RDF::Vocab::ORE.aggregates, | |
| inserted_content_relation: RDF::Vocab::ORE.proxyFor, class_name: "ActiveFedora::Base", | |
| through: 'ActiveFedora::Aggregation::Proxy', foreign_key: :target | |
| # related files | |
| directly_contains :related_files, has_member_relation: RDFVocabularies::PCDMTerms.hasRelatedFile, | |
| class_name: "Hydra::PCDM::File" | |
| end | |
| # plus methods specific to ordering | |
| end | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment