From 066ea0af437fb5df416d4fcf3c9ea71e218787d0 Mon Sep 17 00:00:00 2001 From: Justin Coyne Date: Fri, 17 Jul 2015 11:14:57 -0500 Subject: [PATCH] Move BasicMetadata out of GenericFile because its used by GenericWorks too. --- .../curation_concerns/basic_metadata.rb | 87 ++++++++++++++++++ .../generic_file/basic_metadata.rb | 89 ------------------- .../generic_file_behavior.rb | 2 +- .../templates/app/models/generic_work.rb | 2 +- .../work/templates/model.rb.erb | 2 +- 5 files changed, 90 insertions(+), 92 deletions(-) create mode 100644 curation_concerns-models/app/models/concerns/curation_concerns/basic_metadata.rb delete mode 100644 curation_concerns-models/app/models/concerns/curation_concerns/generic_file/basic_metadata.rb diff --git a/curation_concerns-models/app/models/concerns/curation_concerns/basic_metadata.rb b/curation_concerns-models/app/models/concerns/curation_concerns/basic_metadata.rb new file mode 100644 index 000000000..f25a7ce55 --- /dev/null +++ b/curation_concerns-models/app/models/concerns/curation_concerns/basic_metadata.rb @@ -0,0 +1,87 @@ +module CurationConcerns + module BasicMetadata + extend ActiveSupport::Concern + + included do + + property :label, predicate: ActiveFedora::RDF::Fcrepo::Model.downloadFilename, multiple: false + + property :depositor, predicate: ::RDF::URI.new("http://id.loc.gov/vocabulary/relators/dpt"), multiple: false do |index| + index.as :symbol, :stored_searchable + end + + property :relative_path, predicate: ::RDF::URI.new('http://scholarsphere.psu.edu/ns#relativePath'), multiple: false + + property :import_url, predicate: ::RDF::URI.new('http://scholarsphere.psu.edu/ns#importUrl'), multiple: false do |index| + index.as :symbol + end + + property :part_of, predicate: ::RDF::DC.isPartOf + property :resource_type, predicate: ::RDF::DC.type do |index| + index.as :stored_searchable, :facetable + end + property :title, predicate: ::RDF::DC.title do |index| + index.as :stored_searchable, :facetable + end + property :creator, predicate: ::RDF::DC.creator do |index| + index.as :stored_searchable, :facetable + end + property :contributor, predicate: ::RDF::DC.contributor do |index| + index.as :stored_searchable, :facetable + end + property :description, predicate: ::RDF::DC.description do |index| + index.type :text + index.as :stored_searchable + end + property :tag, predicate: ::RDF::DC.relation do |index| + index.as :stored_searchable, :facetable + end + property :rights, predicate: ::RDF::DC.rights do |index| + index.as :stored_searchable + end + property :publisher, predicate: ::RDF::DC.publisher do |index| + index.as :stored_searchable, :facetable + end + property :date_created, predicate: ::RDF::DC.created do |index| + index.as :stored_searchable + end + + # We reserve date_uploaded for the original creation date of the record. + # For example, when migrating data from a fedora3 repo to fedora4, + # fedora's system created date will reflect the date when the record + # was created in fedora4, but the date_uploaded will preserve the + # original creation date from the old repository. + property :date_uploaded, predicate: ::RDF::DC.dateSubmitted, multiple: false do |index| + index.type :date + index.as :stored_sortable + end + + property :date_modified, predicate: ::RDF::DC.modified, multiple: false do |index| + index.type :date + index.as :stored_sortable + end + property :subject, predicate: ::RDF::DC.subject do |index| + index.as :stored_searchable, :facetable + end + property :language, predicate: ::RDF::DC.language do |index| + index.as :stored_searchable, :facetable + end + property :identifier, predicate: ::RDF::DC.identifier do |index| + index.as :stored_searchable + end + property :based_near, predicate: ::RDF::FOAF.based_near do |index| + index.as :stored_searchable, :facetable + end + property :related_url, predicate: ::RDF::RDFS.seeAlso do |index| + index.as :stored_searchable + end + property :bibliographic_citation, predicate: ::RDF::DC.bibliographicCitation do |index| + index.as :stored_searchable + end + property :source, predicate: ::RDF::DC.source do |index| + index.as :stored_searchable + end + end + + end +end diff --git a/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/basic_metadata.rb b/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/basic_metadata.rb deleted file mode 100644 index 6d0b6078f..000000000 --- a/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/basic_metadata.rb +++ /dev/null @@ -1,89 +0,0 @@ -module CurationConcerns - module GenericFile - module BasicMetadata - extend ActiveSupport::Concern - - included do - - property :label, predicate: ActiveFedora::RDF::Fcrepo::Model.downloadFilename, multiple: false - - property :depositor, predicate: ::RDF::URI.new("http://id.loc.gov/vocabulary/relators/dpt"), multiple: false do |index| - index.as :symbol, :stored_searchable - end - - property :relative_path, predicate: ::RDF::URI.new('http://scholarsphere.psu.edu/ns#relativePath'), multiple: false - - property :import_url, predicate: ::RDF::URI.new('http://scholarsphere.psu.edu/ns#importUrl'), multiple: false do |index| - index.as :symbol - end - - property :part_of, predicate: ::RDF::DC.isPartOf - property :resource_type, predicate: ::RDF::DC.type do |index| - index.as :stored_searchable, :facetable - end - property :title, predicate: ::RDF::DC.title do |index| - index.as :stored_searchable, :facetable - end - property :creator, predicate: ::RDF::DC.creator do |index| - index.as :stored_searchable, :facetable - end - property :contributor, predicate: ::RDF::DC.contributor do |index| - index.as :stored_searchable, :facetable - end - property :description, predicate: ::RDF::DC.description do |index| - index.type :text - index.as :stored_searchable - end - property :tag, predicate: ::RDF::DC.relation do |index| - index.as :stored_searchable, :facetable - end - property :rights, predicate: ::RDF::DC.rights do |index| - index.as :stored_searchable - end - property :publisher, predicate: ::RDF::DC.publisher do |index| - index.as :stored_searchable, :facetable - end - property :date_created, predicate: ::RDF::DC.created do |index| - index.as :stored_searchable - end - - # We reserve date_uploaded for the original creation date of the record. - # For example, when migrating data from a fedora3 repo to fedora4, - # fedora's system created date will reflect the date when the record - # was created in fedora4, but the date_uploaded will preserve the - # original creation date from the old repository. - property :date_uploaded, predicate: ::RDF::DC.dateSubmitted, multiple: false do |index| - index.type :date - index.as :stored_sortable - end - - property :date_modified, predicate: ::RDF::DC.modified, multiple: false do |index| - index.type :date - index.as :stored_sortable - end - property :subject, predicate: ::RDF::DC.subject do |index| - index.as :stored_searchable, :facetable - end - property :language, predicate: ::RDF::DC.language do |index| - index.as :stored_searchable, :facetable - end - property :identifier, predicate: ::RDF::DC.identifier do |index| - index.as :stored_searchable - end - property :based_near, predicate: ::RDF::FOAF.based_near do |index| - index.as :stored_searchable, :facetable - end - property :related_url, predicate: ::RDF::RDFS.seeAlso do |index| - index.as :stored_searchable - end - property :bibliographic_citation, predicate: ::RDF::DC.bibliographicCitation do |index| - index.as :stored_searchable - end - property :source, predicate: ::RDF::DC.source do |index| - index.as :stored_searchable - end - end - - end - end -end diff --git a/curation_concerns-models/app/models/concerns/curation_concerns/generic_file_behavior.rb b/curation_concerns-models/app/models/concerns/curation_concerns/generic_file_behavior.rb index 68b3c099a..dc3cc268e 100644 --- a/curation_concerns-models/app/models/concerns/curation_concerns/generic_file_behavior.rb +++ b/curation_concerns-models/app/models/concerns/curation_concerns/generic_file_behavior.rb @@ -8,7 +8,7 @@ module GenericFileBehavior include CurationConcerns::Permissions include CurationConcerns::GenericFile::Export include CurationConcerns::GenericFile::Characterization - include CurationConcerns::GenericFile::BasicMetadata + include CurationConcerns::BasicMetadata include CurationConcerns::GenericFile::Content include CurationConcerns::GenericFile::VirusCheck include CurationConcerns::GenericFile::FullTextIndexing diff --git a/curation_concerns-models/lib/generators/curation_concerns/models/templates/app/models/generic_work.rb b/curation_concerns-models/lib/generators/curation_concerns/models/templates/app/models/generic_work.rb index 29a053c60..1b1bf3a47 100644 --- a/curation_concerns-models/lib/generators/curation_concerns/models/templates/app/models/generic_work.rb +++ b/curation_concerns-models/lib/generators/curation_concerns/models/templates/app/models/generic_work.rb @@ -1,5 +1,5 @@ # Generated by curation_concerns:models:install class GenericWork < ActiveFedora::Base include ::CurationConcerns::GenericWorkBehavior - include ::CurationConcerns::GenericFile::BasicMetadata + include ::CurationConcerns::BasicMetadata end diff --git a/lib/generators/curation_concerns/work/templates/model.rb.erb b/lib/generators/curation_concerns/work/templates/model.rb.erb index 5499a30cd..e64364592 100644 --- a/lib/generators/curation_concerns/work/templates/model.rb.erb +++ b/lib/generators/curation_concerns/work/templates/model.rb.erb @@ -2,6 +2,6 @@ # `rails generate curation_concerns:work <%= class_name %>` class <%= class_name %> < ActiveFedora::Base include ::CurationConcerns::GenericWorkBehavior - include ::CurationConcerns::GenericFile::BasicMetadata + include ::CurationConcerns::BasicMetadata validates_presence_of :title, message: 'Your work must have a title.' end