Module: Hydra::CommonModsIndexMethods
- Included in:
- ModsDataset, ModsGenericContent, ModsImage
- Defined in:
- lib/hydra/common_mods_index_methods.rb
Overview
Provides some helper methods for indexing compound or non-standard facets
Methods
extract_person_full_names
This method returns a Hash of person_full_name_facet values which combine Lastname, Firstname
extract_person_organizations
This method returns a Hash of person_full_name_facet values which extract the persons affiliation and puts it in an mods_organization_facet
will be removed in release 5.x
Class Method Summary collapse
Instance Method Summary collapse
-
#extract_person_full_names ⇒ Object
Extracts the first and last names of persons and creates Solr::Field objects with for person_full_name_facet.
-
#extract_person_organizations ⇒ Object
Extracts the affiliations of persons and creates Solr::Field objects for them.
Class Method Details
.included(base) ⇒ Object
12 13 14 |
# File 'lib/hydra/common_mods_index_methods.rb', line 12 def self.included(base) ActiveSupport::Deprecation.warn("Hydra::CommonModsIndexMethods has been deprecated. Use Hydra::Datastream::CommonModsIndexMethods instead") end |
Instance Method Details
#extract_person_full_names ⇒ Object
Extracts the first and last names of persons and creates Solr::Field objects with for person_full_name_facet
Returns:
An array of Solr::Field objects
21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/hydra/common_mods_index_methods.rb', line 21 def extract_person_full_names names = {} self.find_by_terms(:person).each do |person| name_parts = person.children.inject({}) do |hash,child| hash[child.get_attribute(:type)] = child.text if ["family","given"].include? child.get_attribute(:type) hash end ::Solrizer::Extractor.insert_solr_field_value(names, "person_full_name_facet", [name_parts["family"], name_parts["given"]].join(", ") ) if name_parts.keys.sort == ["family","given"] names end return names end |
#extract_person_organizations ⇒ Object
Extracts the affiliations of persons and creates Solr::Field objects for them
Returns:
An array of Solr::Field objects
39 40 41 42 43 44 45 |
# File 'lib/hydra/common_mods_index_methods.rb', line 39 def extract_person_organizations orgs = {} self.find_by_terms(:person,:affiliation).each do |org| ::Solrizer::Extractor.insert_solr_field_value(orgs, "mods_organization_facet", org.text) end return orgs end |