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