Sha256: 5bc09db3ebb15dd7ed7bd23de4a590434b13c52835a5e149fd6b818a945df1f9

Contents?: true

Size: 1.14 KB

Versions: 7

Compression:

Stored size: 1.14 KB

Contents

module Ddr
  module Datastreams
    class MetadataDatastream < ActiveFedora::NtriplesRDFDatastream

      def self.term_names
        properties.keys.map(&:to_sym).sort
      end

      # Returns ActiveTriplesTerm 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

    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ddr-models-1.13.2 lib/ddr/datastreams/metadata_datastream.rb
ddr-models-1.13.1 lib/ddr/datastreams/metadata_datastream.rb
ddr-models-1.13.0 lib/ddr/datastreams/metadata_datastream.rb
ddr-models-1.12.3 lib/ddr/datastreams/metadata_datastream.rb
ddr-models-1.12.2 lib/ddr/datastreams/metadata_datastream.rb
ddr-models-1.12.1 lib/ddr/datastreams/metadata_datastream.rb
ddr-models-1.12.0 lib/ddr/datastreams/metadata_datastream.rb