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