# HTML writer
# citation
# History:
# Stan Smith 2017-03-23 refactored for mdTranslator 2.0
# Stan Smith 2015-03-23 original script
# Stan Smith 2015-07-16 refactored to remove global namespace $HtmlNS
# Stan Smith 2015-08-26 added alternate title
require_relative 'html_date'
require_relative 'html_responsibility'
require_relative 'html_identifier'
require_relative 'html_onlineResource'
require_relative 'html_graphic'
module ADIWG
module Mdtranslator
module Writers
module Html
class Html_Citation
def initialize(html)
@html = html
end
def writeHtml(hCitation)
# classes used
dateClass = Html_Date.new(@html)
responsibilityClass = Html_Responsibility.new(@html)
identifierClass = Html_Identifier.new(@html)
onlineClass = Html_OnlineResource.new(@html)
graphicClass = Html_Graphic.new(@html)
# citation - title
@html.em('Title: ')
unless hCitation[:title].nil?
@html.text!(hCitation[:title])
else
@html.text!('*MISSING*')
end
@html.br
# citation - alternate title
unless hCitation[:alternateTitles].empty?
hCitation[:alternateTitles].each do |altTitle|
@html.em('Alternate title: ')
@html.text!(altTitle)
@html.br
end
end
# citation - date [] {}
hCitation[:dates].each do |hDate|
@html.em('Date: ')
dateClass.writeHtml(hDate)
@html.br
end
# citation - edition
unless hCitation[:edition].nil?
@html.em('Edition: ')
@html.text!(hCitation[:edition])
@html.br
end
# citation - responsibilities [] {responsibility}
hCitation[:responsibleParties].each do |hResponsibility|
@html.details do
@html.summary(hResponsibility[:roleName], 'class' => 'h5')
@html.section(:class => 'block') do
responsibilityClass.writeHtml(hResponsibility)
end
end
end
# citation - identifier []
hCitation[:identifiers].each do |hIdentifier|
@html.details do
@html.summary('Identifier', 'class' => 'h5')
@html.section(:class => 'block') do
identifierClass.writeHtml(hIdentifier)
end
end
end
# citation - series
unless hCitation[:series].empty?
@html.details do
@html.summary('Publication Series', {'class' => 'h5'})
@html.section(:class => 'block') do
hSeries = hCitation[:series]
# series - name
unless hSeries[:seriesName].nil?
@html.em('Series Name: ')
@html.text!(hSeries[:seriesName])
@html.br
end
# series - issue
unless hSeries[:seriesIssue].nil?
@html.em('Series Issue: ')
@html.text!(hSeries[:seriesIssue])
@html.br
end
# series - page
unless hSeries[:issuePage].nil?
@html.em('Issue Page: ')
@html.text!(hSeries[:issuePage])
@html.br
end
end
end
end
# citation - online resource []
hCitation[:onlineResources].each do |hOnline|
@html.details do
@html.summary('Online Resource', {'class' => 'h5'})
@html.section(:class => 'block') do
onlineClass.writeHtml(hOnline)
end
end
end
# citation - browse graphic []
hCitation[:browseGraphics].each do |hGraphic|
@html.details do
@html.summary('Graphic Overview', {'class' => 'h5'})
@html.section(:class => 'block') do
graphicClass.writeHtml(hGraphic)
end
end
end
# citation - presentation form []
unless hCitation[:presentationForms].empty?
hCitation[:presentationForms].each do |forms|
@html.em('Presentation Form: ')
@html.text!(forms)
@html.br
end
end
# citation - other details []
unless hCitation[:otherDetails].empty?
hCitation[:otherDetails].each do |detail|
@html.em('Other Details: ')
@html.text!(detail)
@html.br
end
end
end # writeHtml
end # Html_Citation
end
end
end
end