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

Version Path
hydra-mods-0.0.6 lib/hydra/common_mods_index_methods.rb
hydra-mods-0.0.5 lib/hydra/common_mods_index_methods.rb
hydra-mods-0.0.4 lib/hydra/common_mods_index_methods.rb
hydra-mods-0.0.3 lib/hydra/common_mods_index_methods.rb
hydra-mods-0.0.2 lib/hydra/common_mods_index_methods.rb
hydra-mods-0.0.1 lib/hydra/common_mods_index_methods.rb
hydra-head-4.0.3 lib/hydra/common_mods_index_methods.rb
hydra-head-4.0.2 lib/hydra/common_mods_index_methods.rb
hydra-head-4.0.1 lib/hydra/common_mods_index_methods.rb