class GutenbergRdf::Rdf::Agent

Attributes

role[RW]
xml[R]

Public Class Methods

new(xml) click to toggle source
# File lib/gutenberg_rdf/rdf/agent.rb, line 7
def initialize(xml)
  @xml = xml
end

Public Instance Methods

aliases() click to toggle source
# File lib/gutenberg_rdf/rdf/agent.rb, line 47
def aliases
  entries = Array.new
  xml.elements.each('pgterms:alias') do |name|
    entries << name.text
  end
  entries
end
birthdate() click to toggle source
# File lib/gutenberg_rdf/rdf/agent.rb, line 35
def birthdate
  xml.elements['pgterms:birthdate'].text
end
deathdate() click to toggle source
# File lib/gutenberg_rdf/rdf/agent.rb, line 39
def deathdate
  xml.elements['pgterms:deathdate'].text
end
firstname() click to toggle source
# File lib/gutenberg_rdf/rdf/agent.rb, line 31
def firstname
  @firstname ||= name_parts[:first]
end
fullname() click to toggle source
# File lib/gutenberg_rdf/rdf/agent.rb, line 23
def fullname
  [firstname, lastname].reject(&:empty?).join(' ')
end
id() click to toggle source
# File lib/gutenberg_rdf/rdf/agent.rb, line 15
def id
  xml.attributes['about'].match(/\A\d\d\d\d\/agents\/(\d+)\z/)[1]
end
lastname() click to toggle source
# File lib/gutenberg_rdf/rdf/agent.rb, line 27
def lastname
  @lastname ||= name_parts[:last]
end
to_s() click to toggle source
# File lib/gutenberg_rdf/rdf/agent.rb, line 11
def to_s
  fullname
end
webpage() click to toggle source
# File lib/gutenberg_rdf/rdf/agent.rb, line 43
def webpage
  xml.elements['pgterms:webpage'].attributes['resource']
end

Private Instance Methods

name_parts() click to toggle source
# File lib/gutenberg_rdf/rdf/agent.rb, line 57
def name_parts
  parts = xml.elements['pgterms:name'].text.split(/, */)
  last  = parts.shift
  first = parts.reverse.join(' ')

  {first: first, last: last}
end