lib/ddr/datastreams/descriptive_metadata_datastream.rb in ddr-models-1.11.8 vs lib/ddr/datastreams/descriptive_metadata_datastream.rb in ddr-models-1.12.0

- old
+ new

@@ -1,11 +1,11 @@ module Ddr module Datastreams - class DescriptiveMetadataDatastream < ActiveFedora::NtriplesRDFDatastream + class DescriptiveMetadataDatastream < MetadataDatastream class_attribute :vocabularies - self.vocabularies = [RDF::DC, Ddr::Metadata::DukeTerms].freeze + self.vocabularies = [RDF::DC, Ddr::Vocab::DukeTerms].freeze def self.default_attributes super.merge(:mimeType => 'application/n-triples') end @@ -20,60 +20,19 @@ def self.indexers_for(term_name) indexers.fetch(term_name, default_indexers) end - def self.term_names - terms = [] - vocabularies.each do |vocab| - terms |= Ddr::Metadata::Vocabulary.term_names(vocab) - end - terms.sort - end - # Add terms from the vocabularies as properties vocabularies.each do |vocab| - Ddr::Metadata::Vocabulary.property_terms(vocab).each do |term| - term_name = Ddr::Metadata::Vocabulary.term_name(vocab, term) + Ddr::Vocab::Vocabulary.property_terms(vocab).each do |term| + term_name = Ddr::Vocab::Vocabulary.term_name(vocab, term) property term_name, predicate: term do |index| index.as *indexers_for(term_name) end end end - # Returns ActiveFedora::Rdf::Term now that this is an RDF datastream - def values term - term == :format ? self.format : self.send(term) - end - - # Update term with values - # Note that empty values (nil or "") are rejected from values array - def set_values term, values - if values.respond_to?(:reject!) - values.reject! { |v| v.blank? } - else - values = nil if values.blank? - end - begin - self.send("#{term}=", values) - rescue NoMethodError - raise ArgumentError, "No such term: #{term}" - end - end - - # Add value to term - # Note that empty value (nil or "") is not added - def add_value term, value - begin - unless value.blank? - values = values(term).to_a << value - set_values term, values - end - rescue NoMethodError - raise ArgumentError, "No such term: #{term}" - end - end - # Override ActiveFedora::Rdf::Indexing#apply_prefix(name) to not # prepend the index field name with a string based on the datastream id. def apply_prefix(name) name end