Module: Ddr::Models::Describable
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #desc_metadata_attributes ⇒ Object
- #desc_metadata_terms(*args) ⇒ Object
- #desc_metadata_values(term) ⇒ Object
- #desc_metadata_vocabs ⇒ Object
- #has_desc_metadata? ⇒ Boolean
-
#set_desc_metadata(term_values_hash) ⇒ Object
Update all descMetadata terms with values in hash Note that term not having key in hash will be set to nil!.
- #set_desc_metadata_values(term, values) ⇒ Object
Instance Method Details
#desc_metadata_attributes ⇒ Object
50 51 52 53 |
# File 'lib/ddr/models/describable.rb', line 50 def defattrs = self.class.defined_attributes defattrs.keys.select {|k| defattrs[k].dsid == "descMetadata"}.map(&:to_sym) end |
#desc_metadata_terms(*args) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/ddr/models/describable.rb', line 21 def *args return Ddr::Datastreams::DescriptiveMetadataDatastream.term_names if args.empty? arg = args.pop terms = case arg.to_sym when :empty .select { |t| (t).empty? } when :present .select { |t| (t).present? } when :defined_attributes & when :required (:defined_attributes).select {|t| required? t} when :dcterms Ddr::Vocab::Vocabulary.term_names(RDF::DC11) + (Ddr::Vocab::Vocabulary.term_names(RDF::DC) - Ddr::Vocab::Vocabulary.term_names(RDF::DC11)) when :dcterms_elements11 Ddr::Vocab::Vocabulary.term_names(RDF::DC11) when :duke Ddr::Vocab::Vocabulary.term_names(Ddr::Vocab::DukeTerms) else raise ArgumentError, "Invalid argument: #{arg.inspect}" end if args.empty? terms else terms | (*args) end end |
#desc_metadata_values(term) ⇒ Object
55 56 57 |
# File 'lib/ddr/models/describable.rb', line 55 def term descMetadata.values term end |
#desc_metadata_vocabs ⇒ Object
59 60 61 |
# File 'lib/ddr/models/describable.rb', line 59 def descMetadata.class.vocabularies end |
#has_desc_metadata? ⇒ Boolean
17 18 19 |
# File 'lib/ddr/models/describable.rb', line 17 def descMetadata.has_content? end |
#set_desc_metadata(term_values_hash) ⇒ Object
Update all descMetadata terms with values in hash Note that term not having key in hash will be set to nil!
69 70 71 |
# File 'lib/ddr/models/describable.rb', line 69 def term_values_hash .each { |t| (t, term_values_hash[t]) } end |
#set_desc_metadata_values(term, values) ⇒ Object
63 64 65 |
# File 'lib/ddr/models/describable.rb', line 63 def term, values descMetadata.set_values term, values end |