require 'cover'
class Book
+ @@DC_NS_URL = 'http://purl.org/dc/elements/1.1/'
+
def initialize(fileName)
@author = nil
@cover = nil
+ @description = nil
@path = fileName
@series = nil
@title = nil
return @cover
end
- def describe
+ def description
+ @description
+ end
+
+ def heading
result = []
if nil != @title
result.push('<i>(Unknown title)</i>')
end
if nil != @author
- result.push(@author.to_s())
+ result.push('<i>by ' + @author.to_s() + '</i>')
end
seriesInfo = []
#-------
# Author
- creator = opfDoc.css('dc|creator', 'dc' => 'http://purl.org/dc/elements/1.1/')
- if (nil != creator) and (creator.length > 0)
- roleNode = creator.attr('role')
- if nil != roleNode
- role = roleNode.value
- if ('aut' == role) and (creator.children.length > 0) and (nil != creator.children[0])
- name = creator.children[0].content
+ creators = opfDoc.css('dc|creator', 'dc' => @@DC_NS_URL)
+ if (creators.length > 0)
+ creator = creators[0]
+ if nil != creator
+ role = creator['opf:role']
+ if 'aut' == role
+ name = creator.content
parts = name.split(' ')
if parts.length > 1
surname = parts[-1]
end
end
+ #---------------------------------------
+ # Title
+
+ titles = opfDoc.css('dc|title', 'dc' => @@DC_NS_URL)
+ if titles.length > 0
+ title = titles[0]
+ if nil != title
+ @title = title.content
+ end
+ end
+
+ #---------------------------------------
+ # Description
+
+ descrNodes = opfDoc.css('dc|description', 'dc' => @@DC_NS_URL)
+ if (descrNodes.length > 0)
+ descrNode = descrNodes[0]
+ if nil != descrNode
+ @description = descrNode.content
+ end
+ end
+
#---------------------------------------
# Other metadata: series, volume, cover