Sha256: 340e120c2be2d08aafd81ec6f44247e0cefaed89346ed42681a675434e0bbfbb

Contents?: true

Size: 1.27 KB

Versions: 15

Compression:

Stored size: 1.27 KB

Contents

module Ddr
  module Datastreams
    class DescriptiveMetadataDatastream < MetadataDatastream

      class_attribute :vocabularies
      self.vocabularies = [RDF::DC, Ddr::Vocab::DukeTerms].freeze

      def self.default_attributes
        super.merge(:mimeType => 'application/n-triples')
      end

      def self.indexers
        # Add term_name => [indexers] mapping to customize indexing
        {}
      end

      def self.default_indexers
        [:stored_searchable]
      end

      def self.indexers_for(term_name)
        indexers.fetch(term_name, default_indexers)
      end

      # Add terms from the vocabularies as properties
      vocabularies.each do |vocab|
        Ddr::Vocab::Vocabulary.property_terms(vocab).each do |term|
          term_name = Ddr::Vocab::Vocabulary.term_name(vocab, term)
          # Do not include :license as a descriptive metadata property
          unless term_name == :license
            property term_name, predicate: term do |index|
              index.as *indexers_for(term_name)
            end
          end
        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

    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
ddr-models-2.6.2 lib/ddr/datastreams/descriptive_metadata_datastream.rb
ddr-models-2.6.1 lib/ddr/datastreams/descriptive_metadata_datastream.rb
ddr-models-2.6.0 lib/ddr/datastreams/descriptive_metadata_datastream.rb
ddr-models-2.6.0.rc4 lib/ddr/datastreams/descriptive_metadata_datastream.rb
ddr-models-2.6.0.rc3 lib/ddr/datastreams/descriptive_metadata_datastream.rb
ddr-models-2.6.0.rc2 lib/ddr/datastreams/descriptive_metadata_datastream.rb
ddr-models-2.6.0.rc1 lib/ddr/datastreams/descriptive_metadata_datastream.rb
ddr-models-2.5.3 lib/ddr/datastreams/descriptive_metadata_datastream.rb
ddr-models-2.5.2 lib/ddr/datastreams/descriptive_metadata_datastream.rb
ddr-models-2.5.1 lib/ddr/datastreams/descriptive_metadata_datastream.rb
ddr-models-2.5.0 lib/ddr/datastreams/descriptive_metadata_datastream.rb
ddr-models-2.5.0.rc1 lib/ddr/datastreams/descriptive_metadata_datastream.rb
ddr-models-2.4.16 lib/ddr/datastreams/descriptive_metadata_datastream.rb
ddr-models-2.4.15 lib/ddr/datastreams/descriptive_metadata_datastream.rb
ddr-models-2.4.14 lib/ddr/datastreams/descriptive_metadata_datastream.rb