Class: Ddr::Datastreams::MetadataDatastream

Inherits:
ActiveFedora::NtriplesRDFDatastream
  • Object
show all
Defined in:
lib/ddr/datastreams/metadata_datastream.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.term_namesObject



5
6
7
# File 'lib/ddr/datastreams/metadata_datastream.rb', line 5

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

Instance Method Details

#add_value(term, value) ⇒ Object

Add value to term Note that empty value (nil or “”) is not added



31
32
33
34
35
36
37
38
39
40
# File 'lib/ddr/datastreams/metadata_datastream.rb', line 31

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

#set_values(term, values) ⇒ Object

Update term with values Note that empty values (nil or “”) are rejected from values array



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/ddr/datastreams/metadata_datastream.rb', line 16

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

#values(term) ⇒ Object

Returns ActiveTriplesTerm now that this is an RDF datastream



10
11
12
# File 'lib/ddr/datastreams/metadata_datastream.rb', line 10

def values term
  term == :format ? self.format : self.send(term)
end