Sha256: d74c140d3fd626e4a98de24afe3adae7b8bd281e30d044261712993178f0f480
Contents?: true
Size: 1.68 KB
Versions: 9
Compression:
Stored size: 1.68 KB
Contents
# 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 module Hydra::CommonModsIndexMethods def self.included(base) ActiveSupport::Deprecation.warn("Hydra::CommonModsIndexMethods has been deprecated. Use Hydra::Datastream::CommonModsIndexMethods instead") end # 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 # 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 # Extracts the affiliations of persons and creates Solr::Field objects for them # # == Returns: # An array of Solr::Field objects # 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 end
Version data entries
9 entries across 9 versions & 2 rubygems