Module: Ddr::Models::Describable

Extended by:
ActiveSupport::Concern
Included in:
Base
Defined in:
lib/ddr/models/describable.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#desc_metadata_attributesObject



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
  .values term
end

#desc_metadata_vocabsObject



59
60
61
# File 'lib/ddr/models/describable.rb', line 59

def 
  .class.vocabularies
end

#has_desc_metadata?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/ddr/models/describable.rb', line 17

def has_desc_metadata?
  .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
  .set_values term, values
end