class CbrToEpub::Output::EpubBuilder
Attributes
data[R]
file_manager[R]
Public Class Methods
new(file_manager, data)
click to toggle source
# File lib/cbr_to_epub/output/epub_builder.rb, line 7 def initialize(file_manager, data) @file_manager = file_manager @data = data end
Public Instance Methods
generate_images()
click to toggle source
# File lib/cbr_to_epub/output/epub_builder.rb, line 29 def generate_images data.pages.each do |page| FileUtils.copy(page.input_image_file, File.join(output_directory, 'OEBPS/', page.image_file)) end end
generate_metadata()
click to toggle source
# File lib/cbr_to_epub/output/epub_builder.rb, line 12 def generate_metadata Dir.mkdir(File.join(output_directory, 'META-INF')) Dir.mkdir(File.join(output_directory, 'OEBPS')) copy_template('mimetype') copy_template('META-INF/container.xml') copy_template('OEBPS/style.css') render_template('OEBPS/content.opf', data) render_template('OEBPS/toc.ncx', data) end
generate_pages()
click to toggle source
# File lib/cbr_to_epub/output/epub_builder.rb, line 23 def generate_pages data.pages.each do |page| render_template('OEBPS/page.xhtml', page, output_file_name = File.join('OEBPS', page.page_file)) end end
Private Instance Methods
copy_template(file_name)
click to toggle source
# File lib/cbr_to_epub/output/epub_builder.rb, line 39 def copy_template(file_name) FileUtils.copy(File.join(template_directory, file_name), File.join(output_directory, file_name)) end
output_directory()
click to toggle source
# File lib/cbr_to_epub/output/epub_builder.rb, line 53 def output_directory file_manager.epub_directory end
render_template(file_name, bind_object, output_file_name = nil)
click to toggle source
# File lib/cbr_to_epub/output/epub_builder.rb, line 43 def render_template(file_name, bind_object, output_file_name = nil) template = File.read(File.join(template_directory, file_name + '.erb')) rendered_template = ERB.new(template).result(bind_object.erb_binding) File.write(File.join(output_directory, output_file_name || file_name), rendered_template) end
template_directory()
click to toggle source
# File lib/cbr_to_epub/output/epub_builder.rb, line 49 def template_directory File.join(__dir__, '../../template/') end