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

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_namesObject

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_organizationsObject

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