Module: Ddr::Describable
- Extended by:
- ActiveSupport::Concern
- Included in:
- Resource
- Defined in:
- app/models/concerns/ddr/describable.rb
Constant Summary collapse
Class Method Summary collapse
- .default_indexers ⇒ Object
- .indexers ⇒ Object
- .indexers_for(term_name) ⇒ Object
- .term_names ⇒ Object
- .vocabularies ⇒ Object deprecated Deprecated.
Instance Method Summary collapse
- #desc_metadata_terms(*args) ⇒ Object
- #desc_metadata_vocabs ⇒ Object deprecated Deprecated.
-
#has_desc_metadata? ⇒ Boolean
Used in ddr-admin view.
-
#set_desc_metadata(term_values_hash) ⇒ Object
Used in dul-hydra 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
Used here and in indexing spec test but can probably be replaced with just .set_value(term, values).
Class Method Details
.default_indexers ⇒ Object
24 25 26 |
# File 'app/models/concerns/ddr/describable.rb', line 24 def self.default_indexers [:stored_searchable] end |
.indexers ⇒ Object
19 20 21 22 |
# File 'app/models/concerns/ddr/describable.rb', line 19 def self.indexers # Add term_name => [indexers] mapping to customize indexing {} end |
.indexers_for(term_name) ⇒ Object
28 29 30 |
# File 'app/models/concerns/ddr/describable.rb', line 28 def self.indexers_for(term_name) indexers.fetch(term_name, default_indexers) end |
.term_names ⇒ Object
7 8 9 |
# File 'app/models/concerns/ddr/describable.rb', line 7 def self.term_names TERM_NAMES end |
Instance Method Details
#desc_metadata_terms(*args) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'app/models/concerns/ddr/describable.rb', line 47 def *args return Ddr::Describable.term_names if args.empty? arg = args.pop terms = case arg.to_sym when :empty .select { |t| values(t).nil? || values(t).empty? } when :present .select { |t| values(t).present? } when :defined_attributes when :dcterms # Why? I think we did this to put the DCMI Elements terms in front ... # Do we still need that? Also, we didn't remove :license here, which is probably wrong. Ddr.vocab[:dcmi_elements] + (Ddr.vocab[:dcmi_terms] - Ddr.vocab[:dcmi_elements]) when :dcterms_elements11 Ddr.vocab[:dcmi_elements] when :duke Ddr.vocab[:duke_terms] else raise ArgumentError, "Invalid argument: #{arg.inspect}" end if args.empty? terms else terms | (*args) end end |
#desc_metadata_vocabs ⇒ Object
Deprecated.
76 77 78 79 80 |
# File 'app/models/concerns/ddr/describable.rb', line 76 def warn "[DEPRECATION] `Ddr::Describable#desc_metadata_vocabs` is deprecated." Ddr::Describable.vocabularies end |
#has_desc_metadata? ⇒ Boolean
Used in ddr-admin view
43 44 45 |
# File 'app/models/concerns/ddr/describable.rb', line 43 def (:present).present? end |
#set_desc_metadata(term_values_hash) ⇒ Object
Used in dul-hydra Update all descMetadata terms with values in hash Note that term not having key in hash will be set to nil!
90 91 92 |
# File 'app/models/concerns/ddr/describable.rb', line 90 def term_values_hash .each { |t| (t, term_values_hash[t]) } end |
#set_desc_metadata_values(term, values) ⇒ Object
Used here and in indexing spec test but can probably be replaced with just .set_value(term, values)
83 84 85 |
# File 'app/models/concerns/ddr/describable.rb', line 83 def term, values set_value term, values end |