appendix()
click to toggle source
def appendix
if catalog
names = catalog.appendix.split("\n")
chaps = names.each_with_index.map {|n, idx|
mkchap_ifexist(n, idx)
}.compact
return mkpart(chaps)
end
if File.file?("#{@basedir}/#{config["postdef_file"]}")
begin
return mkpart_from_namelistfile("#{@basedir}/#{config["postdef_file"]}")
rescue FileNotFound => err
raise FileNotFound, "postscript #{err.message}"
end
end
end
basedir()
click to toggle source
bib_exist?()
click to toggle source
def bib_exist?
File.exist?("#{@basedir}/#{bib_file}")
end
bib_file()
click to toggle source
def bib_file
config["bib_file"]
end
catalog()
click to toggle source
def catalog
return @catalog if @catalog.present?
catalogfile_path = "#{basedir}/#{config["catalogfile"]}"
if File.file? catalogfile_path
@catalog = File.open(catalogfile_path){|f| Catalog.new(f) }
end
@catalog
end
catalog=(catalog)
click to toggle source
def catalog=(catalog)
@catalog = catalog
end
chapter(id)
click to toggle source
def chapter(id)
chapter_index()[id]
end
chapter_index()
click to toggle source
def chapter_index
return @chapter_index if @chapter_index
contents = chapters()
parts().each do |prt|
if prt.id.present?
contents << prt
end
end
@chapter_index = ChapterIndex.new(contents)
end
chapters()
click to toggle source
def chapters
parts().map {|p| p.chapters }.flatten
end
config()
click to toggle source
def config
@config ||= Configure.values
end
contents()
click to toggle source
def contents
if parts.present?
chapters + parts
else
chapters
end
end
each_chapter(&block)
click to toggle source
def each_chapter(&block)
chapters.each(&block)
end
each_chapter_r(&block)
click to toggle source
def each_chapter_r(&block)
chapters.reverse_each(&block)
end
each_part(&block)
click to toggle source
def each_part(&block)
parts.each(&block)
end
ext()
click to toggle source
def ext
config["ext"]
end
htmlversion()
click to toggle source
def htmlversion
if config["htmlversion"].blank?
nil
else
config["htmlversion"].to_i
end
end
image_dir()
click to toggle source
def image_dir
config["image_dir"]
end
image_types()
click to toggle source
def image_types
config["image_types"]
end
image_types=(types)
click to toggle source
def image_types=(types)
config["image_types"] = types
end
load_config(filename)
click to toggle source
def load_config(filename)
new_conf = YAML.load_file(filename)
@config.merge!(new_conf)
end
next_chapter(chapter)
click to toggle source
def next_chapter(chapter)
finded = false
each_chapter do |c|
return c if finded
finded = true if c == chapter
end
nil
end
page_metric()
click to toggle source
def page_metric
if config["page_metric"].respond_to?(:downcase) && config["page_metric"].upcase =~ /^[A-Z0-9_]+$/
ReVIEW::Book::PageMetric.const_get(config["page_metric"].upcase)
elsif config["page_metric"].kind_of?(Array) && config["page_metric"].size == 5
ReVIEW::Book::PageMetric.new(*config["page_metric"])
else
config["page_metric"]
end
end
part(n)
click to toggle source
def part(n)
parts.detect {|part| part.number == n }
end
part_exist?()
click to toggle source
def part_exist?
if catalog
catalog.parts.present?
else
File.exist?("#{@basedir}/#{config["part_file"]}")
end
end
parts()
click to toggle source
def parts
@parts ||= read_parts()
end
parts=(parts)
click to toggle source
def parts=(parts)
@parts = parts
end
parts_in_file()
click to toggle source
def parts_in_file
parts.find_all{|part|
part if part.present? and part.file?
}
end
postscripts()
click to toggle source
def postscripts
if catalog
mkpart_from_namelist(catalog.postdef.split("\n"))
end
end
prefaces()
click to toggle source
def prefaces
if catalog
return mkpart_from_namelist(catalog.predef.split("\n"))
end
if File.file?("#{@basedir}/#{config["predef_file"]}")
begin
return mkpart_from_namelistfile("#{@basedir}/#{config["predef_file"]}")
rescue FileNotFound => err
raise FileNotFound, "preface #{err.message}"
end
end
end
prev_chapter(chapter)
click to toggle source
def prev_chapter(chapter)
finded = false
each_chapter_r do |c|
return c if finded
finded = true if c == chapter
end
nil
end
read_APPENDIX()
click to toggle source
def read_APPENDIX
if catalog
catalog.appendix
else
read_FILE(config["postdef_file"])
end
end
read_CHAPS()
click to toggle source
def read_CHAPS
if catalog
catalog.chaps
else
read_FILE(config["chapter_file"])
end
end
read_PART()
click to toggle source
def read_PART
return @read_part if @read_part
if catalog
@read_part = catalog.parts
else
@read_part = File.read("#{@basedir}/#{config["part_file"]}")
end
end
read_POSTDEF()
click to toggle source
def read_POSTDEF
if catalog
catalog.postdef
else
""
end
end
read_PREDEF()
click to toggle source
def read_PREDEF
if catalog
catalog.predef
else
read_FILE(config["predef_file"])
end
end
read_bib()
click to toggle source
def read_bib
File.read("#{@basedir}/#{bib_file}")
end
reject_file()
click to toggle source
def reject_file
config["reject_file"]
end
volume()
click to toggle source
def volume
vol = Volume.sum(chapters.map {|chap| chap.volume })
vol.page_per_kbyte = page_metric.page_per_kbyte
vol
end