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