lib/isodoc/gb/common.rb
require "isodoc"
require_relative "./cleanup.rb"
require_relative "./metadata.rb"
require "fileutils"
module IsoDoc
module Gb
# A {Converter} implementation that generates GB output, and a document
# schema encapsulation of the document for validation
class Common < IsoDoc::Common
attr_accessor :meta
def initialize(options)
@meta = options[:meta]
@standardlogoimg = options[:standardlogoimg]&.sub(%r{^(?=/|[A-Z]:/)}, "#{@localdir}/")
@standardclassimg = options[:standardclassimg]&.sub(%r{^(?=/|[A-Z]:/)}, "#{@localdir}/")
@standardissuerimg = options[:standardissuerimg]&.sub(%r{^(?=/|[A-Z]:/)}, "#{@localdir}/")
end
def fileloc(loc)
File.expand_path(File.join(File.dirname(__FILE__), loc))
end
def format_agency(agency, format, localdir)
return "<img class='logo' src='#{@standardissuerimg}' alt='#{agency.join(",")}'></img>" if @standardissuerimg
return agency unless agency.is_a?(Array)
if agency == ["中华人民共和国国家质量监督检验检疫总局", "中国国家标准化管理委员会"]
logo = "gb-issuer-default.gif"
#FileUtils.cp fileloc(File.join('html/gb-logos', logo)), logo
return "<img class='logo' src='#{fileloc(File.join('html/gb-logos', logo))}' alt='#{agency.join(",")}'></img>"
end
format_agency1(agency, format)
end
def format_agency1(agency, format)
ret = "<table>"
agency.each { |a| ret += "<tr><td>#{a}</td></tr>" }
ret += "</table>"
ret.gsub!(/<table>/, "<table width='100%'>") if format == :word
ret
end
def format_logo(prefix, scope, _format, localdir)
logo = @meta.standard_logo(prefix)
return format_logo1(logo, prefix, scope, localdir) if @standardlogoimg
return "" if %w(enterprise social-group).include? scope
if logo.nil?
"<span style='font-size:36pt;font-weight:bold'>#{prefix}</span>"
else
format_logo1(logo, prefix, scope, localdir)
end
end
def local_logo_suffix(scope)
return "" if scope != "local"
local = @meta.get[:gblocalcode]
"<span style='font-weight:bold'>#{local}</span>"
end
def format_logo1(logo, prefix, scope, localdir)
local = local_logo_suffix(scope)
return "<img class='logo' width='113' height='56' src='#{@standardlogoimg}' alt='#{prefix}'></img>"\
"#{local}" if @standardlogoimg
logo += ".gif"
#FileUtils.cp fileloc(File.join('html/gb-logos', logo)), logo
#@files_to_delete << logo
"<img class='logo' width='113' height='56' src='#{fileloc(File.join('html/gb-logos', logo))}' alt='#{prefix}'></img>"\
"#{local}"
end
end
end
end