module Ddr::Models::Metadata

Constants

ADMIN_METADATA
DESC_METADATA

Public Class Methods

property_term(term) click to toggle source
# File lib/ddr/models/metadata/metadata.rb, line 9
def self.property_term(term)
  property_terms[term.to_sym]
end

Public Instance Methods

add_value(term, value) click to toggle source

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

# File lib/ddr/models/metadata/metadata.rb, line 44
def add_value(term, value)
  begin
    unless value.blank?
      prop_term = self.class.property_term(term)
      if object.class.properties[prop_term.to_s].multiple?
        values = values(term).to_a << value
        set_values term, values
      else
        set_value term, value
      end
    end
  rescue NoMethodError
    raise ArgumentError, "No such term: #{term}"
  end
end
set_value(term, value) click to toggle source

Update singular term with value

# File lib/ddr/models/metadata/metadata.rb, line 19
def set_value(term, value)
  begin
    self.send("#{term}=", value)
  rescue NoMethodError
    raise ArgumentError, "No such term: #{term}"
  end
end
set_values(term, values) click to toggle source

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

# File lib/ddr/models/metadata/metadata.rb, line 29
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) click to toggle source
# File lib/ddr/models/metadata/metadata.rb, line 14
def values(term)
  self.send(term)
end