lib/hydra/mods_article.rb in hydra-head-4.0.0.rc5 vs lib/hydra/mods_article.rb in hydra-head-4.0.0.rc6

- old
+ new

@@ -1,11 +1,9 @@ -require "uva/mods_index_methods" module Hydra class ModsArticle < ActiveFedora::NokogiriDatastream include Hydra::Datastream::CommonModsIndexMethods - include Uva::ModsIndexMethods def initialize(digital_object, dsid, options={}) ActiveSupport::Deprecation.warn("Hydra::ModsArticle has been deprecated. Use Hydra::Datastream::ModsArticle instead") super @@ -508,7 +506,29 @@ ::Solrizer::Extractor.insert_solr_field_value(solr_doc, "object_type_facet", "Article") ::Solrizer::Extractor.insert_solr_field_value(solr_doc, "mods_journal_title_info_facet", "Unknown") if solr_doc["mods_journal_title_info_facet"].nil? || solr_doc["mods_journal_title_info_facet"].blank? solr_doc end + + # extracts the last_name##full_name##computing_id to be used by home view + def extract_person_full_names_and_computing_ids + 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["computing_id"] = child.text if child.name == 'computing_id' + hash + end + if name_parts.length == 3 and person.search(:roleTerm).children.text.include?("Author") + if name_parts["family"].blank? && name_parts["given"].blank? && name_parts["computing_id"].blank? + value = "Unknown Author" + else + value = "#{name_parts["family"]}, #{name_parts["given"]} (#{name_parts["computing_id"]})" + end + ::Solrizer::Extractor.insert_solr_field_value(names, "person_full_name_cid_facet", value) if name_parts.length == 3 + end + end + names + end + end end