class Sovren::Publication

Attributes

abstract[RW]
comments[RW]
conference_date[RW]
conference_location[RW]
edition[RW]
event_name[RW]
isbn[RW]
issue[RW]
journal_or_serial_name[RW]
number_of_pages[RW]
page_number[RW]
publication_date[RW]
publisher_location[RW]
publisher_name[RW]
role[RW]
title[RW]
type[RW]
volume[RW]

Public Class Methods

parse(publications) click to toggle source
# File lib/sovren/publication.rb, line 5
def self.parse(publications)
  return Array.new if publications.nil?
  result = publications.css('Article,Book,ConferencePaper,OtherPublication').collect do |item|
    c = Publication.new
    c.type = item.name == "OtherPublication" ? item['type'] : item.name
    c.title = item.css('Title').text
    c.role = item.css('Name').first['role'] rescue nil
    c.publication_date = item.css('PublicationDate').css('YearMonth,Year').first.text rescue nil
    c.journal_or_serial_name = item.css('JournalOrSerialName').text
    c.volume = item.css('Volume').text
    c.issue = item.css('Issue').text
    c.page_number = item.css('PageNumber').text
    c.abstract = item.css('Abstract').text
    c.copyright_date = item.css('Copyright CopyrightDates OriginalDate Year, Copyright CopyrightDates OriginalDate YearMonth').first.text rescue nil
    c.copyright_text = item.css('Copyright CopyrightText').first.text rescue nil
    c.edition = item.css('Edition').text
    c.isbn = item.css('ISBN').text
    c.publisher_name = item.css('PublisherName').text
    c.publisher_location = item.css('PublisherLocation').text
    c.event_name = item.css('EventName').text
    c.conference_date = Date.parse(item.css('ConferenceDate AnyDate').text) rescue nil
    c.conference_location = item.css('ConferenceLocation').text
    c.comments = item.css('Comments').text
    c.number_of_pages = item.css('NumberOfPages').text.to_i rescue nil
    c
  end
  result
end